Как сделать моделирование наследования в реляционных базах данных?
Мой вопрос касается моделирования наследования в реляционных системах баз данных. У меня есть каноническая модель данных, и у меня есть несколько полей, связанных с ценой продукта, наследующими определенные атрибуты из таблицы продуктов, и я хочу смоделировать это наследование в реляционной базе данных MySQL и т. Д.,
"Как мы можем сделать моделирование наследования в реляционных базах данных?"
Благодарю.
5 ответов
Мартин Фаулер подробно обсуждает это в своей книге "Шаблоны архитектуры корпоративных приложений". Получить эту книгу и посмотреть на:
Сайт должен дать вам некоторую идею. Вы также можете прочитать раздел о средствах наследования. У каждого из разных подходов есть свои плюсы и минусы, поэтому выбирайте мудро.
Посмотрите на эти статьи для некоторых идей:
Если вы просто хотите посмотреть некоторые веб-статьи вместо того, чтобы читать книгу, вы можете найти несколько хороших статей от Google:
Generalization Specialization Relational Modeling
Паттерн gen-spec охватывает те же основы, что и наследование в средах ООП.
Если вы гуглите на
Generalization Specialization Object Modeling
вы получите целую новую серию статей, большинство из которых явно упоминают наследование.
Существует метод проектирования, который кратко описан в следующем теге class-table-наследование под тегом info. Это позволяет вам использовать таблицы подклассов для "расширения" таблицы классов, если вы допускаете странное использование слова "вытянуть". Там есть какая-то работа, но она того стоит.
Реляционные базы данных не имеют дело с объектами (и, следовательно, с наследованием) - они имеют дело с отношениями. На самом деле вы спрашиваете, как сопоставить структуру вашего объекта с вашей базой данных, и ответ на этот вопрос "это зависит от вашего уровня ORM".
Взгляните на статью Mapping Objects to Relational Database: подробное описание O/R Mapping. Если вы сообщите нам, какой программный стек вы используете, вы, скорее всего, получите более точный ответ.
Глава 6 "Практические вопросы в управлении базами данных", вероятно, является интересным для вас чтением.
Как и во всех других главах, возможно, но они не имеют прямого отношения к вашему вопросу.