如何在关系数据库中存储自定义实体属性

时间:2015-05-01 18:12:09

标签: sql database database-design relational-database

我正在为我正在开发的应用程序设计数据库。

我有两个表,其中实体可以具有自定义应用程序属性,这些属性将定义如何使用来自每个实体的数据。

每个实体可以包含零到多个属性,我想知道以关系方式构造此类数据的最佳方法。我应该有一个表,每个表和键/值列都有外键,还是有更好的方法可以做到这一点?

1 个答案:

答案 0 :(得分:2)

您说的是“实体属性值”表。

实体表:

Ent1 (Eid, name, desc, etc...)
Ent2 (Eid, name, desc, etc...)

属性(EAV)表:

Ent1Props (id, Eid, att, value)
Ent2Props (id, Eid, att, value)

您可以将两个EAV表合并为一个,并创建一个MUCK(Massive Unified Code Key)表。但是不要这样做,因为从长远来看它有一些真正的缺点。几乎每个人都曾尝试过它,因为它起初似乎很容易,但它变成了怪物。

Key value pairs in relational database