我正在为我正在开发的应用程序设计数据库。
我有两个表,其中实体可以具有自定义应用程序属性,这些属性将定义如何使用来自每个实体的数据。
每个实体可以包含零到多个属性,我想知道以关系方式构造此类数据的最佳方法。我应该有一个表,每个表和键/值列都有外键,还是有更好的方法可以做到这一点?
答案 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)表。但是不要这样做,因为从长远来看它有一些真正的缺点。几乎每个人都曾尝试过它,因为它起初似乎很容易,但它变成了怪物。