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>
<code>deductions -------------- id name khce1 gold khsn1 silver</code>
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>
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>
Vorteile der Zwischentabellenmethode
Die Zwischentabellenmethode bietet folgende Vorteile:
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!