dubr
@dubr
пыхарь

"Core Entities & Hiers" — загадочный паттерн для наследования в БД, кто найдет источник?

На хабре в комментах случайно наткнулся на вот такой способ организации наследования сущностей на уровне реляционной БД:

в случае с ресторанами и гостиницами можно использовать подход Core Entities & Hiers — 1 таблица — «гео-объект» (название, адрес, тип,… ) +1 таблица на каждый из типов сущностей: рестораны, отели, чебуречные,…


Пошел гуглить, попалось еще несколько упоминаний на хабре и не только - но все в рунете. Пригляделся, увидел, что в "hiers" опечатка, должно быть "heirs" ("наследники"). Обрадовался, загуглил "core entities & heirs"... и фиг - единственное вхождение, и тоже на русском.

Трюк довольно простой: выносим общие поля в "родительскую" таблицу, для наследников создаем свои таблицы с их полями, джойним по праймари - INNER чтобы подцепить родителей, LEFT - наследников, уровней может быть несколько. Я его много лет назад самостоятельно изобрел, позже неоднократно встречал описания похожих схем. А вот в виде термина увидел впервые, поэтому и любопытно выяснить, откуда оно взялось и есть ли где-то каноническое описание паттерна (как, например, для EAV).

P.S. Призываю хабраюзеров Денис Бесков и potapuff которые сей термин использовали =)
  • Вопрос задан
  • 485 просмотров
Решения вопроса 1
qonand
@qonand
Software Engineer
Если правильно понял принцип работы тогда речь идет о паттерне Class Table Inheritance описанной Фаулером
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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