Ich sehe mir dieses Datenmodell an, das ich mir ausgedacht habe, und fühle mich nicht wohl dabei. Ich habe die Entitätsnamen geändert, damit es (hoffentlich) mehr Sinn macht. Auf jeden Fall, wie würden Sie das folgende Modell?
Ich habe 3 Entitäten. GovernmentCustomer, PrivateCustomer, PublicCustomer. Private und PublicCustomer sind beide CorporateCustomers. Firmenkunden und Behördenkunden sind Konten. Alle Konten teilen sich denselben Schlüsselraum (wenn also PrivateCustomer eine PK von 1 hat, sollte es nicht möglich sein, dass Public oder GovernmentCustomer eine PK von 1 haben). CorporateCustomers haben einige 1:M-Beziehungen, die GovernmentCustomers nicht haben. PublicCustomers haben einige 1:M-Beziehungen, die PrivateCustomers nicht haben.
Das Erbe:
Account
CorporateCustomer
PrivateCustomer
PublicCustomer
GovernmentCustomer
Zurzeit hat mein Modell 5 Tabellen. Die Tabelle "Konto" ist die Wurzel dieser Hierarchie, wobei die PK jeder untergeordneten Tabelle eine FK zur PK der übergeordneten Tabelle ist. Alle Tabellen haben also die gleiche PK.
Also ja, wie würden Sie das modellieren? Ich hoffe, dass hier nicht irgendetwas völlig schief gelaufen ist :).
EDIT:
Außerdem: - Ich möchte, dass sich die DB um die Integrität der Schiedsrichter kümmert, nicht die App. - Es ist nicht möglich, dass ein CorporateCustomer existiert, ohne entweder ein privater oder öffentlicher Kunde zu sein. Es ist abstrakt.