USERS
Contiene gli account degli utenti, i dati profilo, lo stato email, il ruolo admin e gli identificativi SSO.
- PK id INT AUTO_INCREMENT
- · nome VARCHAR(100)
- · cognome VARCHAR(100)
- UQ email VARCHAR(255)
- · password_hash VARCHAR(255)
- · telefono VARCHAR(20)
- · bio TEXT
- · foto_profilo VARCHAR(255)
- · created_at TIMESTAMP
- · updated_at TIMESTAMP
- · public_key TEXT
- · email_verificata TINYINT(1)
- · is_admin TINYINT(1)
- · ban_status ENUM('attivo','bannato')
- · google_id VARCHAR(255)
- · apple_id VARCHAR(255)
Vincoli di Integrità e Cardinalità
PK
id identifica univocamente ogni utente.
1:N
users(id) -> ride_offers.user_id: un utente puo pubblicare molti passaggi.
1:N
users(id) -> ride_requests.user_id: un utente puo richiedere molti passaggi come passeggero.
1:N
users(id) -> chat_messages.sender_id e receiver_id: un utente puo inviare e ricevere molti messaggi.