用户想要动态地在UI中添加新字段.这个新字段应该存储在数据库中,并且应该允许它们对它执行CRUD.
现在我可以通过指定XML来实现这一点,但我想要一个更好的方法来搜索这些新列.此外,触发ALTER语句和添加新列的想法似乎是错误的.
任何人都可以帮我在数据库服务器端设计模式如何解决这个问题?
这可以使用键值系统来处理.您可以创建一个表,其中包含要注释的表的主键列,属性名称列以及值的列.当用户想要将属性(比如身高)添加到人123的记录时,您可以使用值(123,'HEIGHT','140.5')向新表添加一行.
通常,您将值转换为TEXT以进行存储,但如果您知道所有属性都是数字,则可以为值列选择不同的类型.您也可以(不推荐)根据数据类型使用多个不同的值列.
此技术的优点是您无需修改数据库结构即可添加新属性,并且仅为具有这些属性的记录存储属性.缺点是查询不像列全部在主数据表中那样简单.