„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 ein Fremdschlüssel auf mehrere Tabellen in polymorphen Assoziationen verweisen?

Kann ein Fremdschlüssel auf mehrere Tabellen in polymorphen Assoziationen verweisen?

Veröffentlicht am 16.11.2024
Durchsuche:734

Can a Foreign Key Reference Multiple Tables in Polymorphic Associations?

Polymorphe Fremdschlüssel: Kann ein Fremdschlüssel auf mehrere Tabellen verweisen?

Das Konzept von Fremdschlüsseln in relationalen Datenbanken beinhaltet typischerweise die Angabe des genauen Ziels Tabelle, auf die eine Referenzspalte verweisen soll. Wenn es jedoch um polymorphe Assoziationen geht, bei denen eine Tabelle eine Beziehung zu mehreren anderen Tabellen in einer Menge hat, stellt sich die Frage: Ist es möglich, einen Fremdschlüssel zu haben, der auf eine dieser Tabellen verweisen kann?

Die Antwort: Nein

In MySQL und PostgreSQL kann eine Fremdschlüsseleinschränkung nur auf eine einzelne übergeordnete Tabelle verweisen. Diese Einschränkung stellt die Datenintegrität sicher, indem eine klare Beziehung zwischen den referenzierenden Zeilen und den referenzierten Zeilen in der übergeordneten Tabelle aufrechterhalten wird.

Alternativen für polymorphe Assoziationen

Da ein Fremdschlüssel dies nicht kann Wenn Sie direkt auf mehrere Tabellen verweisen, sind alternative Lösungen erforderlich, um polymorphe Assoziationen zu modellieren:

  • Joined Vererbung: Erstellen Sie eine einzelne Tabelle, die alle Spalten der untergeordneten Tabellen und eine Diskriminatorspalte enthält, um zu identifizieren, zu welcher Tabelle jede Zeile gehört.
  • Tabelle pro Klassenhierarchie: Separat erstellen Tabellen für jede untergeordnete Tabelle erstellen und durch Vererbung Beziehungen zwischen ihnen herstellen.
  • Union-Typen: Verwenden Sie eine einzelne Spalte, die dies kann nimmt Datenwerte aus verschiedenen Domänen auf und ermöglicht so die Referenzierung mehrerer untergeordneter Tabellen.

Zusätzliche Ressourcen

Weitere Einblicke in polymorphe Assoziationen und ihre Lösungen finden Sie unter die folgenden Ressourcen:

  • Praktische objektorientierte Modelle in SQL
  • SQL Antipatterns, Band 1: Die Fallstricke der Datenbankprogrammierung vermeiden
Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729692085 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
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