sql >> Databasteknik >  >> RDS >> Mysql

Översätta relationsattribut från ER-diagram till SQL

Ja, du bör skapa ett Meeting enhet för att representera många till många-relationer mellan Student och Supervisor . I den kan du relatera till de tabellerna med hjälp av främmande nycklar som motsvarar de respektive tabellerna. I SQL kan det se ut ungefär så här:

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)
}

Du skulle också göra samma sak för Supervise mellan Project och Supervisor . Du kan också använda något som kallas en sammansatt nyckel på ditt mötesbord, jag antar att det beror på personliga preferenser, jag brukar göra det på detta sätt när jag representerar många till många relationer. Jag säger inte att det här är syntaxen du kommer att använda, det beror på din databas, detta var bara ett exempel för att peka dig i rätt riktning. Hoppas det hjälper.

Även för ditt diagram (jag gissar bara att det här är för en klass) kanske du vill titta på programvara som visio eller visuellt paradigm för att skapa ditt ER-diagram. Även om de flesta människor kommer att kunna förstå ditt nuvarande diagram, är det inte korrekt modellering.

För skojs skull gjorde jag ett diagram baserat på dina tabeller:

Du skulle vilja ha en enhet mellan Supervisor och Project om de är ett många till många förhållande. Detta kallas en associative entity . Jag märkte mitt SupervisorProject bara så att de är lite tydligare.

Redigera Förbisåg det faktum att Student och projekt var många till en, fixade det, förlåt.



  1. Uppdatera databas med flera SQL-statement

  2. Varför kopplar du inte Android till databasen direkt?

  3. JPA - No Persistence Provider för EntityManager som heter {{NAME_HERE}}

  4. mysql ERROR 2002 (HY000):Kan inte ansluta till den lokala MySQL-servern via sockeln '/var/run/mysqld/mysqld.sock' (2)