【问题标题】:How to store custom entity properties in a relational database如何在关系数据库中存储自定义实体属性
【发布时间】:2015-07-11 14:51:00
【问题描述】:
我正在为我正在开发的应用程序设计一个数据库。
我有两个表,其中实体可以具有自定义应用程序属性,这些属性将定义如何使用每个实体的数据。
每个实体可以有零到多个属性,我想知道以关系方式构造此类数据的最佳方法是什么。我应该有一个表,每个表和键/值列都有外键,还是有更好的方法?
【问题讨论】:
标签:
sql
database
database-design
relational-database
【解决方案1】:
您说的是“实体属性值”表。
实体表:
Ent1 (Eid, name, desc, etc...)
Ent2 (Eid, name, desc, etc...)
属性(EAV)表:
Ent1Props (id, Eid, att, value)
Ent2Props (id, Eid, att, value)
您可以将两个 EAV 表合并为一个,从而创建一个 MUCK(大规模统一代码密钥)表。但不要这样做,因为从长远来看它有一些真正的缺点。几乎每个人都曾尝试过,因为一开始似乎很容易,但它变成了一个怪物。
Key value pairs in relational database