也许这比我想的更简单,更直接,但我似乎无法在谷歌的任何地方找到这个概念。这个概念是这样的:
您在数据库中有一个表,该表具有指定的列数。但是,之前的客户向我询问,还有一组动态用户定义列可以动态添加。
这个概念叫什么,它被认为是一种设计模式?
答案 0 :(得分:1)
你可能在谈论名称 - 值对。
像这样:
UserProfile
-----------
UserID PropertyName PropertyValue
但这并不意味着您动态地向表中添加列。这不是这样做的。
答案 1 :(得分:0)
我怀疑客户需要能够使用自定义字段创建存储在数据库中的实体。
有几种方法:
您可以使用公共实体字段(id,dateCreated,dateModified,isVisible,typeId ...)创建一个表,并在xml-field中存储其他特定字段(所有实体类型都有一个表)。
如果Xml数据类型看起来过于依赖于存储数据,则可以使用nvarchar,其中属性以JSON表示法存储。如果大小确实很重要,也可以使用二进制格式:)
或者您可以创建相关表来存储特定的实体属性。此方法在asp.net配置文件默认提供程序中实现:用户表和用户配置文件表[userId,profile-attribute-name,profile-attribute-value
选择什么取决于其他要求。