Se un User
(Usuario) può avere Appointment
(Citas) con uno specifico Doctor
(Medico) o con uno specifico Establishment
(Establecimiento), allora hai bisogno avere una relazione opzionale da 1 a molti tra Appointment
e Establishment
AND e facoltativo da 1 a molti relazione tra Appointment
e Doctor
.
La nave relazione opzionale è rappresentata sul diagramma sostituendo il piede di porco con un |
con O
su il lato di Establishment
e Doctor
.
Per la tabella Appointment
, significa avere un campo che è una chiave esterna per entrambi. E questi campi devono essere nulli. Questo ti darà la massima flessibilità: puoi aggiungere l'appuntamento senza nulla, puoi impostare il medico o lo stabilimento o entrambi.
Per l'occasione, vorrei attirare la tua attenzione su altri due punti (non correlati alla tua domanda):
- Il tuo diagramma dice che un
Doctor
ha solo un User
(ecco perché viene generata una usario_id
nella tabella Doctor
). Penso che sia sbagliato (a meno che il tuo sistema non gestisca una clinica per milionari che possono assumere il proprio medico privato a tempo pieno): devi cambiare questa relazione con una relazione molte a molte.
- Mi chiedo se questa relazione diretta sia necessaria, dal momento che il
Appointment
sarà di fatto una relazione indiretta tra molti medici e pazienti.