Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Was ist der beste Weg, um die polymorphe Zuordnung in SQL Server zu implementieren?

Die beiden gebräuchlichsten Ansätze sind Tabelle pro Klasse (d. h. eine Tabelle für die Basisklasse und eine weitere Tabelle für jede Unterklasse, die die zusätzlichen Spalten enthält, die zur Beschreibung der Unterklasse erforderlich sind) und Tabelle pro Hierarchie (d. h. alle Spalten in einer Tabelle, mit einer oder mehreren). Spalten, um die Unterscheidung von Unterklassen zu ermöglichen. Welcher Ansatz der bessere ist, hängt wirklich von den Besonderheiten Ihrer Anwendung und Ihrer Datenzugriffsstrategie ab.

In Ihrem ersten Beispiel hätten Sie Tabelle pro Klasse, indem Sie die Richtung des FK umkehren und die zusätzlichen IDs vom übergeordneten Element entfernen. Die anderen beiden sind im Wesentlichen Varianten von Tabellen pro Klasse.