在查看使用EAV概念设计的数据库时,我很困惑。 EAV代表实体,属性和价值。我的问题是:EAV数据模型是否被视为数据库规范化的高级形式?是“必须使用”才能“更新”吗?
缩短时间:什么时候使用EAV而不是什么时候?
答案 0 :(得分:6)
不,他们被认为是一种反模式。
他们可以被视为将标准化纳入荒谬的水平(我已经看到人们认为这是一个好主意),导致人们失去所有简单的广告查询的概念,并对正确索引的概念造成严重破坏。
当您不知道架构是什么时(例如客户端可自定义的“数据库”),EAV就占有一席之地。
答案 1 :(得分:1)
作为一般经验法则,EAV模型不是良好的设计实践,在大多数情况下应避免使用。但是,在某些情况下,它们可能是解决手头问题的最佳解决方案,但它应该很少见。
您的数据库工具箱应包含各种工具,其中一些工具比其他工具更专业。 EAV不应该是锤子或螺丝刀,而更像是大锤;你可以用它来钉钉子,但从长远来看它不是很有效。