Fremdschlüssel für eine von mehreren Tabellen: Ist das möglich?
In relationalen Datenbanken werden Fremdschlüssel verwendet, um Beziehungen zwischen Tabellen herzustellen. Normalerweise verweist ein Fremdschlüssel in einer Tabelle auf einen Primärschlüssel in einer anderen Tabelle. Es stellt sich jedoch die Frage: Kann ein Fremdschlüssel auf eine von mehreren Tabellen verweisen?
Die Antwort: Nein
Eine Fremdschlüsseleinschränkung verweist immer genau auf eine übergeordnete Tabelle. Dies bedeutet, dass es nicht möglich ist, einen Fremdschlüssel zu definieren, der auf eine von mehreren möglichen Tabellen verweist. Dieses Verhalten ist in MySQL und PostgreSQL gleich.
Auswirkungen auf polymorphe Beziehungen
Polymorphe Beziehungen sind, wenn eine Tabelle eine Beziehung zu einer von mehreren anderen Tabellen haben kann. Im bereitgestellten Beispiel hat die Tabelle „images“ eine Beziehung zu einer von zwei Tabellen: „subordinates“ oder „products“.
In solchen Fällen ist es nicht möglich, direkt einen Fremdschlüssel zu erstellen, der auf verweist entweder „Untergebene“ oder „Produkte“. Stattdessen muss explizit eine Join-Tabelle definiert werden, um die Beziehung herzustellen. Die Join-Tabelle enthält die Fremdschlüssel sowohl für „Untergebene“ als auch für „Produkte“, und die Tabelle „Bilder“ verfügt dann über einen Fremdschlüssel, der auf die Join-Tabelle verweist.
Zusätzliche Ressourcen
Beachten Sie zur weiteren Erforschung dieses Themas die folgenden Ressourcen:
Das obige ist der detaillierte Inhalt vonIst ein Fremdschlüssel für mehrere Tabellen in relationalen Datenbanken möglich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!