EAV数据模型是否被视为数据库规范化的高级形式?

时间:2011-11-07 17:39:32

标签: database normalization

在查看使用EAV概念设计的数据库时,我很困惑。 EAV代表实体,属性和价值。我的问题是:EAV数据模型是否被视为数据库规范化的高级形式?是“必须使用”才能“更新”吗?

缩短时间:什么时候使用EAV而不是什么时候?

2 个答案:

答案 0 :(得分:6)

不,他们被认为是一种反模式。

他们可以被视为将标准化纳入荒谬的水平(我已经看到人们认为这是一个好主意),导致人们失去所有简单的广告查询的概念,并对正确索引的概念造成严重破坏。

当您不知道架构是什么时(例如客户端可自定义的“数据库”),EAV就占有一席之地。

答案 1 :(得分:1)

作为一般经验法则,EAV模型不是良好的设计实践,在大多数情况下应避免使用。但是,在某些情况下,它们可能是解决手头问题的最佳解决方案,但它应该很少见。

您的数据库工具箱应包含各种工具,其中一些工具比其他工具更专业。 EAV不应该是锤子或螺丝刀,而更像是大锤;你可以用它来钉钉子,但从长远来看它不是很有效。