Hi,
mal n schuss ins Blaue (oder in den Ofen) ;))
Tabelle C
PK
Payload (Nutzdaten)
FK Referenz auf Tabelle A-PK
Tabelle A
PK
gemeinsame Attribute von A1 und A2
Tabelle A1
PK = FK Referenz auf Tabelle A-PK
A1 spezifische Payload Daten
Tabelle A2
PK = FK Referenz auf Tabelle A-PK
A2 spezifische Payload Daten
(Ja, du könntest in A2 und A1 jeweils denselben Key aus A referenzieren, nur warum solltest du das zweimal eintragen -> Da muss deine Geschäftslogik einsetzen und das verhindern)
Wenn du jetzt eine Abfrage machst, kannst du direkt auf ein UNION ALL aus A1 und A2 joinen. Lediglich die Felder müssten entsprechend im Select aufbereitet werden (also SELECT A1.feldA, A1.feldB, NULL ... UNION ALL SELECT NULL, NULL, A2.feldXYZ)
Mit einem CHECK Constraint wie von King Lully erwähnt geht es auch irgendwie.
OO Patterns auf RDBMS'se anzuwenden funktioniert meistens schlecht oder gar nicht.
Vielleicht lese ich mir auch nochmal dein initialposting durch ...
Cheers,
Frank