Modello di database: entità che può avere valori da due diverse tabelle o valori di input dell'utente

-1

Sto modellando un database, dove ho una tabella chiamata "appuntamenti" (citas in spagnolo, ma vorrei tradurre i nomi delle tabelle per una migliore comprensione) in cui l'utente può creare un appuntamento per visitare un medico (prendendo i valori da la tabella del medico) o visitare una struttura (prendendo i valori dalla tabella "establecimeintos"), ma ho anche bisogno di consentire all'utente di aggiungere direttamente i dati.

Quale può essere la migliore approssimazione per ottenere questo ?, In questo momento sto pensando di aggiungere l'ID di un medico o di un istituto come chiave estranea ma non sono sicuro.

Questo è il diagramma del mio database:

    
posta Eduardo Corona 18.10.2018 - 05:56
fonte

1 risposta

0

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.
risposta data 18.10.2018 - 09:12
fonte