小编典典

动态在数据库表中添加列的设计模式

sql

用户希望在UI中动态添加新字段。该新字段应存储在数据库中,并应允许对其执行CRUD。

现在,我可以通过指定XML来做到这一点,但我希望有一种更好的方法来搜索这些新列。触发ALTER语句并添加新列的想法似乎也是错误的。

谁能在数据库服务器端提供有关如何解决此问题的设计模式帮助我?


阅读 132

收藏
2021-04-07

共1个答案

小编典典

可以使用键值系统来实现。您将创建一个表,该表具有要注释的表的主键列,用于属性名称的列以及用于其值的列。当用户要向人员123的记录添加属性(例如身高)时,可以在新表中添加带有值(123,“
HEIGHT”,“ 140.5”)的行。

通常,您将值转换为TEXT进行存储,但是如果您知道所有属性都是数字,则可以为value列选择其他类型。您也可以(不建议)根据数据类型使用几个不同的值列。

该技术的优势在于,您无需修改​​数据库结构即可添加新属性,并且只为具有它们的记录存储属性。缺点是查询不像所有列都在主数据表中那样直接。

2021-04-07