Redjik
Я использую смешенный подход, для нормальных модулей завожу свои таблицы, свои модели.
В тоже времени для сайтов визиток есть модуль Page, где одна модель у которой есть тип, название, краткое описание, красивый урл, seo заголовок, боди, мастер и слейв шаблоны, набор блоков. Соответственно сущности в виде дерева. ПОнятное дело, что много сущностей в такой системе не очень хорошо, т.к. могут быть проблемы с производительностью. Похожая система в ModX.
В CRM-ке у нас одна основная сущность, набор полей, связи, отображение и т.д. задаётся через конфиги. Хранится всё в разных конфигах, но генерируется на основании этих конфигов. Сейчас по дефолту все связи строятся по схеме много ко многим, чтобы не было проблем при модификации. От этой сущности наследовались другие модули, но сейчас используем декораторы и проксируем неовервраёженные методы на основную, т.к. наследование удобно, но какашка для конфигурирования и апгрейд сейф.