相关疑难解决方法(0)

我应该使用EAV模型吗?

我正在为电子商务应用程序设计我的数据库/域,而我很难弄清楚如何存储产品.

该网站将出售各种产品,钢笔,丁字裤,纹身,雨伞,应有尽有.这些产品中的每一个都会分享一些常见的属性,高度,宽度,长度,重量等,但有些产品有特殊数据.例如,笔具有不同的墨水颜色,并且提示/盖子和小册子可以具有不同类型的折叠.到目前为止,我已经考虑了20多个额外属性,但这些属性可能仅适用于网站上1%的产品.

所以我想知道是否适合实施EAV模型来处理额外的数据.请记住,当客户在前端查看网站时,会有一个过滤侧边栏,如eBay和carsales.com.au.(所以记住会有一些相当多的查询)

我认为实现类表继承是不切实际的,因为系统需要保持灵活性.这是因为,在未来的轨道上,我们可能会在未来使用新类型的产品时拥有更多属性.

我考虑的另一件事是使用NoSQL数据库(可能是MongoDB)但是我对这些类型的数据库没什么经验,它甚至可以解决我的问题吗?

审查选项:

  1. 单个产品实体,包含大量列
  2. 单独的属性实体(EAV)
  3. 切换到无模式持久性

我正在构建一个带有属性实体的原型,以查看它的灵活性,测试性能以及查询失控的方式.

编辑:我当然对任何其他解决方案持开放态度.

php database-design magento entity-attribute-value doctrine-orm

30
推荐指数
1
解决办法
1万
查看次数