以下数据库表设计是否有任何名称:
基本上我们有代表键/值对的通用列。
1 |名字|山姆|姓氏|史密斯| NULL | NULL | ...
在我的应用程序中,我有许多表只有一行,我想将它们合并到一个通用表中,该表具有X个列,每行代表单个表行。
提前致谢。
答案 0 :(得分:10)
Entity-Attribute-Value.也称为“名称 - 值表”或“开放式模式”。
这是SQL Antipattern。它没有很多关系数据库设计规则,而且难以维护。我建议不要这样做。
在我对问题“Product table, many kinds of product, each product has many parameters.”
的回答中,详细了解我对EAV的看法答案 1 :(得分:3)
糟糕的主意。基本上,您应该将关系数据库用作关系数据库。
键/值对通常不是建议的存储方法,但至少具有单个键和单个值的单行是“正确的”。
如果您将多对放在一行中,则会引发许多问题:
将您的实体建模为具有已知属性的实体。这就是数据库的用途。