Heim >Datenbank >MySQL-Tutorial >Kann ein Fremdschlüssel gleichzeitig auf Primärschlüssel aus zwei separaten Tabellen verweisen?
Fremdschlüsselverweise über mehrere Tabellen hinweg: Ein strukturierter Ansatz
Dieser Artikel befasst sich mit der Herausforderung, einen Fremdschlüssel in einer Abzugstabelle zu erstellen, der auf Primärschlüssel aus den Tabellen „employees_ce“ und „employees_sn“ in einer „employees“-Datenbank verweist. Sowohl Employees_ce als auch Employees_sn verfügen über eindeutige Primärschlüssel. Ist eine direkte duale Fremdschlüsselreferenz möglich?
Die effiziente Lösung: Ein hierarchisches Design
Die optimale Lösung besteht darin, die Datenbank so umzustrukturieren, dass sie eine hierarchische Mitarbeiterstruktur widerspiegelt:
Mitarbeiterhierarchie:Mitarbeiter als übergeordnete Klasse mit Mitarbeiter_ce und Mitarbeiter_sn als Unterklassen anzeigen.
Datenbanktabellendesign: Erstellen Sie eine Struktur mit drei Tabellen:
id
ist der Primärschlüssel.id
ist ein Fremdschlüssel, der auf employees.id
verweist.id
ist ein Fremdschlüssel, der auf employees.id
verweist.Fremdschlüsselbeziehungen:Fremdschlüsseleinschränkungen festlegen:
employees_ce.id
Referenzen employees.id
employees_sn.id
Referenzen employees.id
Abzugstabelle: Die deductions
-Tabelle verfügt nun über einen einzelnen Fremdschlüssel, employee_id
, der auf die Spalte employees.id
verweist.
Dieses hierarchische Modell stellt die referenzielle Integrität sicher und verwaltet Daten für verschiedene Mitarbeitertypen effizient. Es vermeidet die Komplexität und potenziellen Inkonsistenzen des Versuchs einer direkten doppelten Fremdschlüsselreferenz. Der einzelne Fremdschlüssel in der deductions
-Tabelle stellt einen klaren und eindeutigen Link zum relevanten Mitarbeiterdatensatz bereit.
Das obige ist der detaillierte Inhalt vonKann ein Fremdschlüssel gleichzeitig auf Primärschlüssel aus zwei separaten Tabellen verweisen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!