2013-07-19 2 views
3

В модели EER существуют объекты подклассов. Мне было интересно, каким способом реализовать это в реальной таблице SQL или если есть какое-либо руководство, которое может помочь мне понять, как реализовать подклассы сущностей в таблицах, которые помогут. СпасибоРасширенная модель привязки сущности к таблицам (подклассам)

ответ

4

книга Мартина Фаулера Patterns of Enterprise Application Architecture охватывает решения для таблиц подклассов:

Они соответствуют варианты в ответе от @ spencer7593, не привязанные к Java & Hibernate.

+0

+1. Это лучший ответ, чем мой ответ. (Никто не любит привязываться к Hibernate, но документация неоценима, если вы привязаны к ней). – spencer7593

3

В документации Hibernate обсуждаются параметры, доступные для представления иерархии наследования в реляционной базе данных. Несомненно, лучше учебники, но Hibernate ORM (любовь-или-ненависть-он) боролся с этой проблемой.

Поскольку нет ни одного «лучшего способа», чтобы представить иерархию наследования, они поддерживают все варианты:

  • таблицу на иерархию классов - в основном одну таблицы, со всеми атрибутами из всех подклассов. много столбцов, вероятно, будет нулевым на большом количестве строк

  • таблица на подкласс - один таблица для суперкласса и отдельной таблицы для каждого подкласса

  • стол на бетонном подклассу - отдельная таблица для каждого подкласса (нет таблица для суперкласса)

Нет единого правильного ответа. Каждый из этих подходов имеет преимущества и недостатки.

http://docs.jboss.org/hibernate/orm/3.3/reference/en-US/html/inheritance.html

+0

+1 Да, Hibernate - это конкретная реализация этих шаблонов, и если OP использует Java, это очень актуально. –