你怎么称呼动态数据定义的概念?

时间:2010-05-12 11:40:06

标签: design-patterns database-design dynamic-data ddl

也许这比我想的更简单,更直接,但我似乎无法在谷歌的任何地方找到这个概念。这个概念是这样的:

您在数据库中有一个表,该表具有指定的列数。但是,之前的客户向我询问,还有一组动态用户定义列可以动态添加。

这个概念叫什么,它被认为是一种设计模式?

2 个答案:

答案 0 :(得分:1)

你可能在谈论名称 - 值对。

像这样:

UserProfile
-----------
UserID  PropertyName  PropertyValue

但这并不意味着您动态地向表中添加列。这不是这样做的。

官方称其为Entity-attribute-value model

答案 1 :(得分:0)

我怀疑客户需要能够使用自定义字段创建存储在数据库中的实体。

有几种方法:

您可以使用公共实体字段(id,dateCreated,dateModified,isVisible,typeId ...)创建一个表,并在xml-field中存储其他特定字段(所有实体类型都有一个表)。

如果Xml数据类型看起来过于依赖于存储数据,则可以使用nvarchar,其中属性以JSON表示法存储。如果大小确实很重要,也可以使用二进制格式:)

或者您可以创建相关表来存储特定的实体属性。此方法在asp.net配置文件默认提供程序中实现:用户表和用户配置文件表[userId,profile-attribute-name,profile-attribute-value

选择什么取决于其他要求。