Как сделать моделирование наследования в реляционных базах данных?

Мой вопрос касается моделирования наследования в реляционных системах баз данных. У меня есть каноническая модель данных, и у меня есть несколько полей, связанных с ценой продукта, наследующими определенные атрибуты из таблицы продуктов, и я хочу смоделировать это наследование в реляционной базе данных MySQL и т. Д.,

"Как мы можем сделать моделирование наследования в реляционных базах данных?"

Благодарю.

5 ответов

Решение

Мартин Фаулер подробно обсуждает это в своей книге "Шаблоны архитектуры корпоративных приложений". Получить эту книгу и посмотреть на:

  1. Наследование в одной таблице
  2. Наследование таблицы классов
  3. Наследование бетонных столов

Сайт должен дать вам некоторую идею. Вы также можете прочитать раздел о средствах наследования. У каждого из разных подходов есть свои плюсы и минусы, поэтому выбирайте мудро.

Если вы просто хотите посмотреть некоторые веб-статьи вместо того, чтобы читать книгу, вы можете найти несколько хороших статей от Google:

Generalization Specialization Relational Modeling

Паттерн gen-spec охватывает те же основы, что и наследование в средах ООП.

Если вы гуглите на

Generalization Specialization Object Modeling

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

Существует метод проектирования, который кратко описан в следующем теге class-table-наследование под тегом info. Это позволяет вам использовать таблицы подклассов для "расширения" таблицы классов, если вы допускаете странное использование слова "вытянуть". Там есть какая-то работа, но она того стоит.

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

Взгляните на статью Mapping Objects to Relational Database: подробное описание O/R Mapping. Если вы сообщите нам, какой программный стек вы используете, вы, скорее всего, получите более точный ответ.

Глава 6 "Практические вопросы в управлении базами данных", вероятно, является интересным для вас чтением.

Как и во всех других главах, возможно, но они не имеют прямого отношения к вашему вопросу.

Другие вопросы по тегам