Ihr Diagramm in den folgenden Tabellen übersetzt:
Employee (Ssn PK, Fname, Minit, Lname, Birth_date, Address, Job_type)
Secretary (Ssn PK/FK, Job_type FK, Typing_speed)
Technician (Ssn PK/FK, Job_type FK, Tgrade)
Engineer (Ssn PK/FK, Job_type FK, Eng_type)
Job_type
eine Domäne von (Secretary, Technician, Engineer)
hat, würde ein Aufzählungstyp in MySQL geeignet sein. Die FK-Einschränkungen für die Subtyp-Tabellen sind zusammengesetzt: Secretary (Ssn, Job_type) REFERENCES Employee (Ssn, Job_type)
und ähnlich für die anderen beiden Subtypen. Sie müssen geeignete Indizes erstellen.
MySQL keine Check-Einschränkungen unterstützen, die schön waren würde die Job_type
jeder Subtyp zu erzwingen. Sie können einen Trigger erstellen, um dasselbe zu tun. Mit dem im Ort verhindert die Verbund FK Constraints einen Mitarbeiter aus mit mehr als einen Subtyp jederzeit - jeder Datensatz in der Employee
Tabelle kann nur ein Job_type
hat und nur die Subtyp Tabelle mit den passenden Job_type
kann einen passenden Datensatz hat.
Wenn Sie möchten, dass Employee
vollständig an der Untertypbeziehung teilnimmt (d. H. Jeder Mitarbeiter muss einen Subtyp haben), könnten Sie auch einen Auslöser dafür erstellen.
Was meinst du mit „Workbench“? SQL-Workbench? Eine ID ist nicht Teil Ihres Diagramms. Und es scheint hier keine '1: n'-Beziehungen zu geben, es sei denn, ein Mitarbeiter hat mehrere Jobs –
MySQL Workbench zum Erstellen von Tabellen und Beziehungen. Ingenieur ist eine Spezialisierung des Angestellten, können Sie mir eine Antwort geben, welche Beziehung ich erstellen muss? –
Ihr Diagramm zeigt die Beziehungen. Warum ist 'SSN' ein' fk'? Das sollte der Primärschlüssel sein, es sieht so aus ... Das hängt wirklich davon ab, wie denormalisiert werden soll. Sie benötigen definitiv eine 'Employee' Tabelle, die dann einen Fremdschlüssel für eine' JobType' Tabelle haben könnte. Ich bin mir aber nicht sicher, was ich mit den "Untertypen" des Mitarbeiters machen soll. –