我对于我的网站设计有点困惑,该网站必须跟踪数千种不同的产品类型(例如汽车,扬声器,婴儿推车等)和存储属性(例如转弯半径,最大输出) ,颜色等)。
我的理解是,如果人们要搜索所有蓝色婴儿推车,我最好为每种类型的产品准备一张桌子(除了#34;泛型&#34) ;产品表,存储所有产品共有的东西,如名称和品牌)。如果不考虑搜索速度,我会热衷于使用EAV类型的模型,但基于我读过的内容,我已经不鼓励这样做。
这似乎是一个常见问题,但我还没有看到如何处理我尝试做的事情的好答案。我知道有很多网站在跟踪这类数据,但我发现很难想象他们有数千个不同的表格来获得"详细信息&#34 ;每种产品类型的表格。是否有可能他们全部使用EAV并且EAV反对者虽然在技术上是正确的,却夸大了使用这种模型的性能损失?或者他们只是使用一个大的产品"包含覆盖每个属性的列的表,只是不担心所有空值?
非常感谢任何帮助。我知道这是一种常见的做法,而且我真的很喜欢让我参与其中的人! :)
答案 0 :(得分:0)
有没有考虑使用CQRS模式?您可以创建一个带有非规范化搜索表的读取数据库,该数据库将针对搜索进行优化。
您可以使用像RavenDB这样的数据库,这个文档数据库应该非常快速地进行读取,以获得更好的性能。