На хабре в комментах случайно
наткнулся на вот такой способ организации наследования сущностей на уровне реляционной БД:
в случае с ресторанами и гостиницами можно использовать подход Core Entities & Hiers — 1 таблица — «гео-объект» (название, адрес, тип,… ) +1 таблица на каждый из типов сущностей: рестораны, отели, чебуречные,…
Пошел гуглить, попалось еще несколько упоминаний
на хабре и
не только - но все в рунете. Пригляделся, увидел, что в "hiers" опечатка, должно быть "heirs" ("наследники"). Обрадовался, загуглил "core entities & heirs"... и фиг - единственное вхождение, и тоже на русском.
Трюк довольно простой: выносим общие поля в "родительскую" таблицу, для наследников создаем свои таблицы с их полями, джойним по праймари - INNER чтобы подцепить родителей, LEFT - наследников, уровней может быть несколько. Я его много лет назад самостоятельно изобрел, позже неоднократно встречал описания похожих схем. А вот в виде термина увидел впервые, поэтому и любопытно выяснить, откуда оно взялось и есть ли где-то каноническое описание паттерна (как, например, для EAV).
P.S. Призываю хабраюзеров
Денис Бесков и
potapuff которые сей термин использовали =)