Verwendung von Untertypen oder separaten Tabellen für Notizen im Datenbankentwurf
Beim Entwurf einer Datenbank stellt sich häufig die Frage: Sollten Untertypen vorhanden sein? innerhalb einer einzelnen Tabelle verwendet werden oder sollten separate Tabellen für verschiedene Datentypen erstellt werden? In diesem Fall haben wir eine Datenbank mit drei Haupttabellen: BÜCHER, ARTIKEL und NOTIZEN. Ursprünglich wurde eine einzige NOTES-Tabelle zum Speichern von Notizen sowohl für Bücher als auch für Artikel verwendet. Es wurden jedoch Bedenken hinsichtlich der Normalisierung und Effizienz dieses Entwurfs geäußert.
Ein möglicher alternativer Ansatz besteht darin, fünf Tabellen zu verwenden: BÜCHER, ARTIKEL, NOTIZEN, BUCHNOTEN und ARTIKEL_NOTES. Diese Struktur würde eine separate Speicherung von Buchnotizen und Artikelnotizen mit einfacheren Spaltendefinitionen in der NOTES-Tabelle ermöglichen.
Die Entscheidung zwischen der Verwendung von Untertypen oder separaten Tabellen hängt von der spezifischen Art der Daten ab. Untertypen werden normalerweise verwendet, wenn die Untertypen eindeutige und unterschiedliche Spalten haben. In diesem Fall unterscheiden sich die Tabellen BOOK_NOTES und ARTICLE_NOTES jedoch nicht wesentlich in ihrer Struktur.
Ein optimalerer Ansatz könnte darin bestehen, eine Supertyp-Tabelle, „Publikation“, mit „Buch“ und „Artikel“ als Untertypen zu erstellen. Dies würde eine einzelne NOTE-Tabelle mit einem Fremdschlüssel für die Veröffentlichung ermöglichen. Da der Primärschlüssel der Veröffentlichung mit dem Primärschlüssel des Buches (oder Artikels) identisch ist, erleichtert er effiziente Verknüpfungen für Veröffentlichung, Buch oder Artikel. Dieses Design bietet auch Flexibilität für das Hinzufügen neuer Publikationstypen, wie z. B. Zeitschriften, ohne die NOTES-Tabelle zu ändern.
Das folgende Tabellenschema veranschaulicht diesen Ansatz beispielsweise:
TABLE Publication ( ID (PK)
Das obige ist der detaillierte Inhalt vonUntertyp oder separate Tabellen für Notizen: Welches Datenbankdesign ist am besten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!