Существует ли инфраструктура значения атрибута Entity для PHP/MySQL? Я начинаю писать свои собственные, но я чувствую, что это уже сделано. Любые предложения?
Существует ли инфраструктура атрибута Entity Attribute (EAV) для PHP/MySQL?
Ответ 1
Я думаю, Magento использует архитектуру стиля EAV, возможно, стоит взглянуть туда. Magento - платформа для электронной коммерции, основанная на Zend Framework.
Ответ 2
В настоящее время не существует EAV Framework в PHP/MySQL; однако я нашел эти две ссылки, которые могут быть полезны:
Ответ 3
Я ничего не знаю.
С учетом сказанного eZ Publish ECMS (который является FOSS) использует EAV-стиль, сильно нормализованная модель данных. Оба определения типов структурированного контента ( "классы контента" ) и фактические экземпляры контента (статьи, учетные записи пользователей, комментарии, продукты, что-либо действительно ) определены и сохранены в отдельных таблицах базы данных.
Таким образом, произвольные комбинации типов данных могут динамически объединяться через веб-интерфейс для создания нового типа контента ( "простая статья" может состоять из "Textline" для заголовка, "Datetime" для даты публикации и "поля XML", для основного текста). В EAV "simplearticle" - это сущность, "заголовок" - имя атрибута и "Textline" - его значение, тогда как правила длины и проверки, содержащие тип данных "Textline" , являются метаданными в контексте EAV.
Как и ожидалось в любой архитектуре EAV, эта гибкость достигается за счет снижения производительности, поскольку для любого поиска требуется несколько самозапуска, по одному для каждого столбца в поворотном результирующем наборе.
К сожалению, этот стек не попал в библиотеку eZ Components (которая имеет объекты базы данных и доступа к данным/компоненты ORM, но и стандартного реляционного сорта), поэтому его использование означало бы либо дело со всем eZ Publish enchilada, либо вырезание необходимых библиотек классов.