Dipende dai vincoli:
- Hai chiavi esterne o CHECK su
apples
che non esistono suoranges
(o viceversa)? - Devi mantenere le chiavi univoche in entrambe le tabelle (quindi niente
apple
può avere lo stesso ID di alcuniorange
)?
Se le risposte a queste due domande sono:"sì" e "no" , mantieni le tabelle separate (in modo che i vincoli possano essere specificati per la tabella).
Se le risposte sono:"no" e "sì" , uniscili insieme (in modo da poter creare una chiave che si estende su entrambi).
Se le risposte sono:"sì" e "sì" , considera l'emulazione dell'ereditarietà:
Cerca dati è un tipico esempio di tabelle che sembrano simili, ma devono essere tenute separate in modo che gli FK possano essere tenuti separati.
In particolare, questa è la strategia "tutte le classi in tabelle separate" per rappresentare l'ereditarietà (ovvero categoria, sottoclassi, sottotipi, gerarchia di generalizzazione ecc.). Potresti dare un'occhiata a questo post per maggiori informazioni.