Есть много разных способов выразить наследование в вашей реляционной модели. Например, вы можете попытаться объединить все в одну таблицу и иметь поле, которое позволяет вам различать различные типы, или иметь одну таблицу для общих атрибутов с отношениями к дочерней таблице с конкретными атрибутами и т. Д. ... в любом выборе вы все еще храните ту же информацию. При переходе от доменной модели к реляционной модели это называется несоответствием импеданса. Оба варианта имеют разные компромиссы, например, к одной таблице будет проще запрашивать, но у нескольких таблиц будет более высокая плотность данных.
По моему опыту, лучше не пытаться отвечать на эти вопросы с точки зрения базы данных, а позволить вашей доменной модели, а иногда и выбранной структуре приложения, управлять структурой таблицы. Конечно, это не всегда приемлемый выбор, особенно если речь идет о производительности.
Я рекомендую начать с рисования на бумаге отношений, которые вы хотите выразить, а затем перейти оттуда. Точная ли структура таблицы представляет домен? Можно ли запросить информацию, о которой вы хотите сообщить? Написанные вами запросы сложны или медленны? Надеемся, что ответы на эти и другие подобные вопросы помогут вам создать хорошую модель отношений.
Я бы также предложил почитать о нормализации базы данных, если вы серьезно относитесь к изучению хороших принципов реляционного моделирования.