В модели EER существуют объекты подклассов. Мне было интересно, каким способом реализовать это в реальной таблице SQL или если есть какое-либо руководство, которое может помочь мне понять, как реализовать подклассы сущностей в таблицах, которые помогут. СпасибоРасширенная модель привязки сущности к таблицам (подклассам)
ответ
книга Мартина Фаулера Patterns of Enterprise Application Architecture охватывает решения для таблиц подклассов:
Они соответствуют варианты в ответе от @ spencer7593, не привязанные к Java & Hibernate.
В документации Hibernate обсуждаются параметры, доступные для представления иерархии наследования в реляционной базе данных. Несомненно, лучше учебники, но Hibernate ORM (любовь-или-ненависть-он) боролся с этой проблемой.
Поскольку нет ни одного «лучшего способа», чтобы представить иерархию наследования, они поддерживают все варианты:
таблицу на иерархию классов - в основном одну таблицы, со всеми атрибутами из всех подклассов. много столбцов, вероятно, будет нулевым на большом количестве строк
таблица на подкласс - один таблица для суперкласса и отдельной таблицы для каждого подкласса
стол на бетонном подклассу - отдельная таблица для каждого подкласса (нет таблица для суперкласса)
Нет единого правильного ответа. Каждый из этих подходов имеет преимущества и недостатки.
http://docs.jboss.org/hibernate/orm/3.3/reference/en-US/html/inheritance.html
+1 Да, Hibernate - это конкретная реализация этих шаблонов, и если OP использует Java, это очень актуально. –
+1. Это лучший ответ, чем мой ответ. (Никто не любит привязываться к Hibernate, но документация неоценима, если вы привязаны к ней). – spencer7593