Die akzeptierte Antwort auf diese Frage ist super nützlich: How can you represent inheritance in a database?Vererbung in SQL. Wie erstelle ich eine Select-Anweisung in der Vererbung von Tabellen pro Typ?
Ich mag diese Lösung, die er Tabelle pro Typ Vererbung ruft:
CREATE TABLE policies (
policy_id int,
date_issued datetime,
-- // other common attributes ...
);
CREATE TABLE policy_motor (
policy_id int,
vehicle_reg_no varchar(20),
-- // other attributes specific to motor insurance ...
FOREIGN KEY (policy_id) REFERENCES policies (policy_id)
);
CREATE TABLE policy_property (
policy_id int,
property_address varchar(20),
-- // other attributes specific to property insurance ...
FOREIGN KEY (policy_id) REFERENCES policies (policy_id)
);
Allerdings verstehe ich nicht, wie man ein wählen zu tun Erklärung. Am Ende der Antwort sagt er:
Suche nach allen Richtlinien, unabhängig von der Unterart wird jetzt sehr einfach: Keine UNIONs benötigt - nur eine SELECT * FROM Richtlinien.
Das wird alle Daten aus den Richtlinien zurückgeben, aber was ist mit den Subtypen? Sollte die Aussage dies sein: SELECT * FROM policies INNER JOIN policy_motor ON policies.policy_id=policy_motor.id INNER JOIN policy_property ON policy_property.id=policies.id WHERE date_issued = yesterday
Für meinen speziellen Fall habe ich 70 Subtypen. Muss ich innerlich alle 70 Tische betreten oder fehlt mir ein einfacher Weg dies zu tun?
Wenn Sie den Subtyp als Spalte in der Richtlinientabelle hinzufügen, wie sieht die Select-Anweisung dann aus? – Adam