Зависи от ограниченията:
- Имате ли външни ключове или ПРОВЕРКИ на
apples
които не съществуват вoranges
(или обратно)? - Трябва ли да запазите ключовете уникални и в двете таблици (така че не
apple
може да има същия идентификатор като някоиorange
)?
Ако отговорите на тези два въпроса са:„да“ и "не" , дръжте таблиците отделни (за да могат ограниченията да бъдат направени специфични за таблицата).
Ако отговорите са:"не" и "да" , обединете ги заедно (за да можете да създадете ключ, който обхваща и двете).
Ако отговорите са:„да“ и "да" , помислете за емулиране на наследяване:
Потърсете данни е типичен пример за таблици, които изглеждат сходни, но трябва да се държат отделно, за да могат FK да се държат отделно.
По-конкретно, това е стратегията "всички класове в отделни таблици" за представяне на наследяване (известно още като категория, подкласове, подтипове, йерархия на обобщение и т.н.). Може да искате да разгледате тази публикация за повече информация.