Heim > Datenbank > MySQL-Tutorial > Kann ein Fremdschlüssel auf mehrere Primärschlüssel in verschiedenen Tabellen verweisen, und was ist die beste Alternative?

Kann ein Fremdschlüssel auf mehrere Primärschlüssel in verschiedenen Tabellen verweisen, und was ist die beste Alternative?

DDD
Freigeben: 2025-01-11 08:16:41
Original
315 Leute haben es durchsucht

Can a Foreign Key Reference Multiple Primary Keys in Different Tables, and What's the Best Alternative?

Tabellenübergreifende Fremdschlüsselreferenz

In diesem Artikel wird die Möglichkeit untersucht, Fremdschlüssel in einer Tabelle zu erstellen, um auf die Primärschlüssel mehrerer anderer Tabellen zu verweisen. Konkret geht es um ein Szenario, das der Fragesteller vorstellt.

Szeneninterpretation

Der Fragesteller hat zwei Tabellen, employees_ce und employees_sn, jede mit ihrer eigenen Primärschlüsselspalte. Sie haben auch eine dritte Tabelle namens deductions, die einen Fremdschlüssel benötigt, um auf die Primärschlüssel von employees_ce und employees_sn zu verweisen. Das bereitgestellte Beispiel veranschaulicht diese Situation weiter:

<code>employees_ce
--------------
empid   name
khce1   prince

employees_sn
----------------
empid   name
khsn1   princess</code>
Nach dem Login kopieren
<code>deductions
--------------
id      name
khce1   gold
khsn1   silver</code>
Nach dem Login kopieren
Nach dem Login kopieren

Lösung

Obwohl das Ziel des Fragestellers technisch erreichbar ist, handelt es sich nicht um eine bewährte Methode beim Datenbankdesign. Die empfohlene Methode besteht darin, eine Zwischentabelle zu definieren, um die beiden Tabellen zu verknüpfen, zum Beispiel:

<code>employees
----------------
empid   name

employees_types
---------------
empid   type
khce1   ce
khsn1   sn</code>
Nach dem Login kopieren

Mit diesem Setup kann die deductions-Tabelle einen Fremdschlüssel haben, der auf die employees-Spalte in der empid-Tabelle verweist, wodurch eine einfache Beziehung zwischen den drei Tabellen entsteht.

<code>deductions
--------------
id      name
khce1   gold
khsn1   silver</code>
Nach dem Login kopieren
Nach dem Login kopieren

Vorteile der Zwischentabellenmethode

Die Zwischentabellenmethode bietet folgende Vorteile:

  • Es vereinfacht die Datenverwaltung, indem es einen einzigen Referenzpunkt für Referenzmitarbeiter bietet.
  • Es vermeidet das Problem, dass Fremdschlüssel auf mehrere Primärschlüssel verweisen, was zu Inkonsistenzen und Datenintegritätsproblemen führen kann.
  • Es bietet Flexibilität und Erweiterbarkeit und die Möglichkeit, andere Mitarbeitertypen hinzuzufügen, ohne die deductions-Tabelle zu ändern.

Das obige ist der detaillierte Inhalt vonKann ein Fremdschlüssel auf mehrere Primärschlüssel in verschiedenen Tabellen verweisen, und was ist die beste Alternative?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage