In diesem Beispiel wird eine gemeinsame Herausforderung für Datenbankdesign untersucht: Erstellen einer fremden Schlüsselbeziehung, in der eine einzelne Tabelle primäre Schlüssel aus mehreren anderen Tabellen verweisen muss. Das spezifische Szenario beinhaltet die
-abzüge Tabelle, die mit beiden
maßstabnehmer_ce und
Employees_Sn
Das Problem und seine Lösung
Die Frage ist, ob ein Fremdschlüssel in Abzügen
in beiden Employe_ce
und
gleichzeitig die primären Schlüssel verweisen kann. Die Antwort lautet: Nicht direkt, in einer Standard -Relational -Datenbank. Ein einzelner Fremdschlüssel kann nur auf eine einzelne Primärschlüssel verweisen.
erbschaftsbasierte Ansatz
Die tabellen Mitarbeiter
, Mitarbeiter_ce
und Mitarbeiter_Sn
repräsentieren eine Erbschafthierarchie. Mitarbeiter
ist die Basistabelle, mit Mitarbeitern_ce
und
als spezielle Tabellen, die daraus erben.
Datenbankstruktur:employees (id INT PRIMARY KEY, name VARCHAR(255))
employees_ce (id INT PRIMARY KEY, ce_specific_attribute VARCHAR(255), employee_id INT, FOREIGN KEY (employee_id) REFERENCES employees(id))
employees_sn (id INT PRIMARY KEY, sn_specific_attribute VARCHAR(255), employee_id INT, FOREIGN KEY (employee_id) REFERENCES employees(id))
Mitarbeiter (ID int Primary Key, Name Varchar (255))
powers_ce (ID int Primärschlüssel, CE_Specific_attribute varchar (255), Employee_id int, Fremdschlüssel (Employee_id) Referenzen Mitarbeiter (ID)))
powers_sn (ID int Primärschlüssel, sn_specific_attribute varchar (255), Employee_id int, Fremdschlüssel (Employee_id) Referenzen Mitarbeiter (ID)) Lösung:
anstelle eines direkten Links zu sowohl Employees_ce
und Employees_Sn
, die -abzüge
table sollte auf die gemeinsame übergeordnete Tabelle
deductions (id INT PRIMARY KEY, employee_id INT, deduction_amount DECIMAL(10,2), ..., FOREIGN KEY (employee_id) REFERENCES employees(id))
deductions (ID int Primary Key, Employee_id int, DEDUKTION_AMOUNT DECIMAL (10,2), ..., Fremd Key (Employee_id) Referenzen Mitarbeiter (ID))
Dieser Ansatz sorgt für eine referenzielle Integrität und vermeidet Redundanz. Die Employee_id
in Abzügen
Links zum Mitarbeiteraufzeichnung in Mitarbeitern
, unabhängig davon, ob dieser Angestellte zusätzliche Informationen in Employepaien_ce
oder
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3