Zależy od ograniczeń:
- Czy masz klucze obce lub czeki na
apples
które nie istnieją naoranges
(lub odwrotnie)? - Czy musisz zachować unikatowe klucze w obu tabelach (więc nie
apple
? może mieć taki sam identyfikator jak niektóreorange
)?
Jeśli odpowiedzi na te dwa pytania brzmią:„tak” i „nie” , trzymaj tabele oddzielnie (aby ograniczenia mogły być specyficzne dla tabeli).
Jeśli odpowiedzi brzmią:„nie” i "tak" , połącz je ze sobą (abyś mógł stworzyć klucz, który łączy oba).
Jeśli odpowiedzi brzmią:"tak" i "tak" , rozważ emulację dziedziczenia:
Wyszukaj dane to typowy przykład tabel, które wyglądają podobnie, ale muszą być trzymane oddzielnie, aby FK mogły być przechowywane oddzielnie.
W szczególności jest to strategia „wszystkie klasy w oddzielnych tabelach” służąca do reprezentowania dziedziczenia (czyli kategorii, podklas, podtypów, hierarchii uogólnienia itp.). Możesz rzucić okiem na ten post aby uzyskać więcej informacji.