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

Доброе время суток!
Интересует вопрос создания и хранения абстрактных изменяемых моделей данных в реляционных БД.
Нужна возможность создания расширяемых и наследуемых моделей в базе данных, с возможностью редактирования и расширения. Например:
1.Мы создаем базовую модель — Животное .
2.Добавляем свойство "Название"
3.Создаем модель наследник КОТ который наследует базовые свойства модели Животное + имеет дополнительные свойства(разных типов, double,binary,и.т.д) возможно и ссылки на другие экземпляры других моделей.
4.Теперь необходимо на уровне БД воссоздать описание конечной модели что бы создать экземпляр модели данных с возможностью хранения свойств в БД.
По сути объктная БД только не очень понятно, как все это переложить на реляционную БД ООП и хранение данных экземпляра.
Возможно есть какие то стандарты или фреймворки которые позволяют это делать?
  • Вопрос задан
  • 2533 просмотра
Пригласить эксперта
Ответы на вопрос 3
Lertmind
@Lertmind
Это называется ORM.
Ответ написан
DimonSmart
@DimonSmart
Kaspersky Lab Developer
Есть классический антипаттерн, EAV Entity Attribute Value
www.sql.ru/forum/1110351/esli-nuzhna-gibkaya-shema...
С академической точки зрения очень интересный принцип хранения.
НО есть много НО

На хабре была очень подробная статья с подробностями работы с EAV базами. На хабре была в кэше гугла ещё есть: https://webcache.googleusercontent.com/search?q=ca...

Дополню ответ очень хорошей и просто обязательной к прочтению статьёй с довольно подробным и хорошим описанием теории построения EAV структур. (Кстати в самой статье слово EAV не используется) ООП в РСУБД
Ответ написан
@vovik0134
Можно попробовать использовать наследование таблиц
Но на первый взгляд это решение не кажется простым, хотя позволяет использовать объектный подход.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы