是否有适用于 PHP/MySQL 的实体属性值框架?我开始写我自己的,但我觉得它已经完成了。有什么建议么?
3 回答
我认为Magento使用了 EAV 风格的架构,可能值得一看。Magento 是一个基于 Zend 框架的电子商务平台。
我一个都不知道。
话虽如此,eZ Publish ECMS(即 FOSS)使用 EAV 风格、高度规范化的数据模型。结构化内容类型的定义(“内容类”)和内容的实际实例(文章、用户帐户、评论、产品等任何东西)都定义并存储在单个数据库表中。
这样,可以通过 Web 界面动态组合数据类型的任意组合以创建新的内容类型(“简单文章”可能包括标题的“文本行”、发布日期的“日期时间”和正文文本的“XML 字段” )。在 EAV 中,“simplearticle”是实体,“headline”是属性名称,“Textline”是其值,而包含“Textline”数据类型的长度和验证规则是 EAV 上下文中的元数据。
正如任何 EAV 架构所期望的那样,这种灵活性是以降低性能为代价的,因为任何查找都需要多个自连接,一个用于透视结果集中的每一列。
不幸的是,这个堆栈还没有进入 eZ 的相关eZ 组件库(它具有数据库和数据访问对象/ORM 组件,但属于标准关系类型),所以使用它意味着要么处理整个 eZ Publish enchilada 要么翻录自己需要的类库。
PHP / MySQL 目前似乎没有 EAV 框架;但是,我确实发现这两个链接可能会有所帮助: