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

Oversættelse af relationsattributter fra ER-diagram til SQL

Ja, du bør oprette et Meeting enhed til at repræsentere mange til mange-forholdet mellem Student og Supervisor . I den kan du relatere til de tabeller ved hjælp af fremmednøgler, der svarer til de respektive tabeller. I SQL kan det se sådan ud:

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 ville også gøre det samme for Supervise mellem Project og Supervisor . Du kan også bruge noget, der kaldes en sammensat nøgle på dit mødebord, jeg tror det kommer ned til personlige præferencer, jeg plejer at gøre det på denne måde, når jeg repræsenterer mange til mange forhold. Jeg siger ikke, at dette er den syntaks, du vil bruge, det afhænger af din database, dette var blot et eksempel for at pege dig i den rigtige retning. Håber det hjælper.

Også for dit diagram (jeg gætter bare på, at dette er for en klasse) vil du måske se på software såsom visio eller visuelt paradigme for at oprette dit ER-diagram. Selvom de fleste mennesker vil være i stand til at forstå dit nuværende diagram, er det ikke korrekt modellering.

For sjov har jeg lavet et diagram baseret på dine tabeller:

Du ønsker en enhed mellem Supervisor og Project hvis de er et mange til mange forhold. Dette kaldes en associative entity . Jeg mærkede mit SupervisorProject bare så de er lidt mere tydelige.

Rediger Overså det faktum, at Student og projekt var mange til én, fiksede det, undskyld.



  1. Forskellen mellem NullIf() og IfNull() i SQLite

  2. mysql:bruge SET eller mange kolonner?

  3. Android sqlite db.query fører til CursorIndexOutOfBoundsException

  4. Medbring din egen sky tilgængelig for DigitalOcean