在SQL Server中创建一个具有动态列数的表

时间:2013-06-08 07:35:08

标签: sql-server-2008 database-design dynamic

实现具有可变数量的列和不同类型的表的最佳方法是什么? (列数未知)

我们使用XML类型的列。你觉得怎么样?

2 个答案:

答案 0 :(得分:1)

如果可能的话,听起来像是使用document based databases
从技术上讲,你不能在SQL-Server中有一个可变列设计表。

顺便说一下,如果有一个基于列的表格,可能会有所帮助:

EntityName: Full qualified entity name
EntityIdentifier: Id
PropertyName: 
PropertyType:
PropertyValue:
EntityStatus: may be useful on delete action

在这些方法中,与XML场景一样,您需要一个解析器来提取实体。在列表中,sql查询将更具可读性,更新将更加方便 希望对你有所帮助。

答案 1 :(得分:0)

当然你会创建另一个表,其中键是ID和ColumnName的复合键。

表格默认:

ID        ColumnName        ColumnValue

Id是主表中的密钥,带有FK以强制执行完整性。

您现在有两个选择,将值的数据类型作为转储基础并插入任何内容,或者为您需要的每种数据类型创建类似上面的表。

然后,您可以使用数据透视表编写视图,使其看起来像查询等的普通表。

Ps我不建议这将是a)最好的解决方案或b)最快的解决方案。