2009-06-22 3 views
4

Tut mir leid, wenn das zu einfach ist, aber ich habe in letzter Zeit eine Menge Dokumentation über ER-Modellierung gefunden, aber alles scheint über die tatsächliche Implementierung zu überspringen und ich möchte nur klarstellen.Wie werden ER modellierte Subtypen in der Datenbank implementiert?

Ist ein Subtyp nur eine zweite Tabelle mit einem Fremdschlüssel zum Supertyp zusammen mit den Eigenschaften des Subtyps? Das wäre jedenfalls für mich am sinnvollsten. Der Primärschlüssel des Subtyps wird normalerweise auch mit dem Supertyp geteilt (Primary des Subtyps hat eine Fremdbedingung für den Supertyp).

Antwort

3

Ja, das ist eine der drei Möglichkeiten, dies zu tun.

Die zweite Möglichkeit, und vielleicht die simple, besteht darin, die Werte im Subtyp nur Felder im Supertyp zu haben, die null sein können. Es benötigt mehr Speicherplatz, erhöht jedoch die Leistung, da weniger Abfragen erforderlich sind, um die unterartenspezifischen Daten abzurufen.

Die dritte Möglichkeit besteht darin, für jeden Typ/Subtyp eine Tabelle zu haben. Dies ist nur dann effizient, wenn Sie immer den Typ/Subtyp der Daten kennen, die Sie nachschlagen müssen. Es benötigt auch nicht so viel Platz wie der zweite Weg.