我正在学习magento,我刚看了EAV。如果我理解正确,它就像是在SQL数据库上模拟noSQL数据库。 所以这种方式,例如,像铅笔这样的产品在描述中可能与计算机或球有不同的属性。
但我在书中读到了这个系统:
所有这些灵活性和权力都不是免费的,而且要付出代价;实施EAV模型导致我们的实体数据分布在大量表格上,例如,只有产品模型分布在大约40个不同的表格上。
[...]
EAV的另一个主要缺点是在检索大量EAV对象时会降低性能,并且会增加数据库查询的复杂性。由于数据更加分散(存储在更多表中),因此选择单个记录涉及多个连接。
我是全新的,所以也许我会失去一些东西,但我的问题是:
为什么要使用这种复杂的方式而不是使用基于文档的数据库作为mongoDB?