我应该使用EAV模型吗?
我正在为电子商务应用程序设计我的数据库/域,我很难弄清楚如何存储产品。
该网站将销售各种各样的产品,钢笔,丁字裤,纹身,雨伞,一切。这些产品中的每一个都会共享一些共同的属性,高度,宽度,长度,重量等,但有些产品有特殊数据。例如,钢笔具有不同的墨水颜色和笔尖/盖子,小册子可以有不同类型的褶皱。到目前为止,我已经想出了大约20多个额外的属性,但这些属性可能只适用于网站上1%的产品。
因此,我想知道实现EAV模型来处理额外数据是否合适。请记住,当客户在前端查看网站时,会有一个过滤侧边栏,就像eBay上一样,carsales.com.au。(所以请记住会有相当多的查询)
我不认为实现类表继承是可行的,因为系统需要保持灵活性。这是因为,在未来,我们可能会有更多的属性与新型产品。
我考虑过的另一件事是使用NoSQL数据库(可能是MongoDB),但是我对这些类型的数据库几乎没有经验,它甚至能解决我的问题吗?
审查选项:
- 具有大量列的单个产品实体
- 独立属性实体 (EAV)
- 切换到无架构持久性
我正在构建一个具有属性实体的原型,以查看它的灵活性,并测试性能以及查询的失控程度。
编辑:当然,我对任何其他解决方案持开放态度。