是否有适用于PHP/MySQL的实体属性值框架?我开始编写自己的框架,但感觉这已经被完成了。有什么建议吗?
是否有适用于PHP/MySQL的实体属性值框架?我开始编写自己的框架,但感觉这已经被完成了。有什么建议吗?
目前似乎没有 PHP/MySQL 的 EAV 框架;不过,我找到了这两个链接,或许能对您有所帮助:
我不知道有哪些。
话虽如此,eZ Publish ECMS(这是自由软件)使用了一种EAV风格、高度规范化的数据模型。 结构化内容类型("content classes")的定义和实际内容实例(文章、用户账户、评论、产品等任何东西)都在单个数据库表中定义和存储。
通过Web界面,可以动态地组合各种数据类型来创建新的内容类型(例如"simplearticle"可能包含"Textline"用于标题、"Datetime"用于发布日期和"XML field"用于正文)。在EAV中,“simplearticle”是实体,“headline”是属性名称,“Textline”是其值,而包含“Textline”数据类型的长度和验证规则是EAV上下文中的元数据。
正如任何EAV架构所期望的那样,这种灵活性的代价是性能降低,因为任何查找都需要多个自连接,每个自连接对应结果集中的一列。
不幸的是,这个堆栈还没有被整合到eZ相关的eZ Components库中(该库包含数据库和数据访问对象/ORM组件,但都是标准关系型组件),因此使用它意味着要么处理整个eZ Publish套餐,要么自己剥离所需的类库。