„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Kann eine Fremdschlüssel mehrere Primärschlüssel gleichzeitig referenzieren?

Kann eine Fremdschlüssel mehrere Primärschlüssel gleichzeitig referenzieren?

Gepostet am 2025-03-22
Durchsuche:938

Can a Foreign Key Reference Multiple Primary Keys Simultaneously?

Umgang mit komplexen fremden Schlüsselbeziehungen im Datenbankdesign

Szenario

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

Tabellen.

verlinken müssen.

Das Problem und seine Lösung Die Frage ist, ob ein Fremdschlüssel in Abzügen in beiden Employe_ce und

Employe_sn

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.

Die vorgeschlagene Lösung nutzt ein gut strukturiertes Vererbungsmodell, um dies zu beheben.

erbschaftsbasierte Ansatz Die tabellen Mitarbeiter , Mitarbeiter_ce und Mitarbeiter_Sn repräsentieren eine Erbschafthierarchie. Mitarbeiter ist die Basistabelle, mit Mitarbeitern_ce und

Employees_Sn

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

sorifices
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

maß wies Dieses Design verwaltet effizient die Beziehung und behält die Datenkonsistenz bei.

Neuestes Tutorial Mehr>

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