Mysql
 sql >> Database >  >> RDS >> Mysql

Traduzione degli attributi di relazione dal diagramma ER in SQL

Sì, dovresti creare una Meeting entità per rappresentare la relazione molti a molti tra Student e Supervisor . In esso puoi relazionarti a quelle tabelle usando chiavi esterne che corrispondono a quelle rispettive tabelle. In SQL potrebbe assomigliare a questo:

Create table Meeting {
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
student_id INT NOT NULL,
supervisor_id INT NOT NULL,
//rest of the fields...   
FOREIGN KEY (student_id) REFERENCES Student(id)
FOREIGN KEY (supervisor_id) REFERENCES Supervisor(id)
}

Faresti la stessa cosa anche per Supervise tra Project e Supervisor . Inoltre potresti usare qualcosa chiamato chiave composita sul tuo tavolo Meeting, immagino che dipenda dalle preferenze personali, di solito lo faccio in questo modo quando rappresento molte o molte relazioni. Non sto dicendo che questa sia la sintassi che utilizzerai, che dipende dal tuo database, questo era solo un esempio per indicarti la giusta direzione. Spero che aiuti.

Anche per il tuo diagramma (sto solo indovinando che questo è per una classe) potresti voler esaminare software come visio o paradigma visivo per creare il tuo diagramma ER. Anche se la maggior parte delle persone sarà in grado di comprendere il tuo diagramma attuale, non si tratta di una modellazione corretta.

Per divertimento ho creato un diagramma basato sulle tue tabelle:

Vorresti un'entità tra Supervisor e Project se sono una relazione molti a molti. Questa è chiamata associative entity . Ho etichettato il mio SupervisorProject solo così sono un po' più chiari.

Modifica Ho trascurato il fatto che Studente e progetto erano molti a uno, ho risolto il problema, mi dispiace.