Подтвердить что ты не робот

Существует ли инфраструктура атрибута Entity Attribute (EAV) для PHP/MySQL?

Существует ли инфраструктура значения атрибута Entity для PHP/MySQL? Я начинаю писать свои собственные, но я чувствую, что это уже сделано. Любые предложения?

4b9b3361

Ответ 1

Я думаю, Magento использует архитектуру стиля EAV, возможно, стоит взглянуть туда. Magento - платформа для электронной коммерции, основанная на Zend Framework.

Ответ 3

Я ничего не знаю.

С учетом сказанного eZ Publish ECMS (который является FOSS) использует EAV-стиль, сильно нормализованная модель данных. Оба определения типов структурированного контента ( "классы контента" ) и фактические экземпляры контента (статьи, учетные записи пользователей, комментарии, продукты, что-либо действительно ) определены и сохранены в отдельных таблицах базы данных.

Таким образом, произвольные комбинации типов данных могут динамически объединяться через веб-интерфейс для создания нового типа контента ( "простая статья" может состоять из "Textline" для заголовка, "Datetime" для даты публикации и "поля XML", для основного текста). В EAV "simplearticle" - это сущность, "заголовок" - имя атрибута и "Textline" - его значение, тогда как правила длины и проверки, содержащие тип данных "Textline" , являются метаданными в контексте EAV.

Как и ожидалось в любой архитектуре EAV, эта гибкость достигается за счет снижения производительности, поскольку для любого поиска требуется несколько самозапуска, по одному для каждого столбца в поворотном результирующем наборе.

К сожалению, этот стек не попал в библиотеку eZ Components (которая имеет объекты базы данных и доступа к данным/компоненты ORM, но и стандартного реляционного сорта), поэтому его использование означало бы либо дело со всем eZ Publish enchilada, либо вырезание необходимых библиотек классов.