Abhängig von Einschränkungen:
- Haben Sie Fremdschlüssel oder CHECKs auf
apples
die es auforanges
nicht gibt (oder umgekehrt)? - Müssen Sie Schlüssel in beiden Tabellen eindeutig halten (also kein
apple
kann die gleiche ID haben wie irgendeinorange
)?
Wenn die Antworten auf diese beiden Fragen lauten:"ja" und "nein" , halten Sie die Tabellen getrennt (damit Einschränkungen tabellenspezifisch gemacht werden können).
Wenn die Antworten lauten:"nein" und "ja" , führen Sie sie zusammen (damit Sie einen Schlüssel erstellen können, der beide umfasst).
Wenn die Antworten lauten:"ja" und "ja" , erwägen Sie die Emulation der Vererbung:
Lookup-Daten ist ein typisches Beispiel für Tabellen, die ähnlich aussehen, aber getrennt gehalten werden müssen, damit FKs getrennt gehalten werden können.
Genauer gesagt ist dies die Strategie „alle Klassen in separaten Tabellen“ zur Darstellung der Vererbung (auch bekannt als Kategorie, Unterklassenbildung, Untertypisierung, Verallgemeinerungshierarchie usw.). Vielleicht möchten Sie sich diesen Beitrag ansehen für weitere Informationen.