C#SQL:实现动态表的最佳方法是什么?

时间:2010-04-12 14:58:29

标签: c# asp.net sql sql-server-2008

我想允许用户在UI中向表中添加列。

UI:列名称:______列类型:数字/字符串/日期

我的问题是如何构建SQL表和C#对象,以便实现高效且可扩展。


我的想法是构建两个SQL表:

TBL 1 - ColumnsDefinition:

ColId,ColName,ColType [Text]

TBL 2 - ColumnsValues:

RowId,ColId,Value [Text]


我希望解决方案在数据库空间中高效,

我希望允许用户对动态列进行排序。

我在.NET 3.5 / SQL Server 2008上工作。

感谢。

2 个答案:

答案 0 :(得分:0)

我认为这实质上是WebParts.SqlPersonalizationProvider的工作方式,这并不一定意味着它是最好的,但确实意味着在一些聪明的人想到它一段时间之后,这就是他们想出来的。

对给定字段进行排序会有点棘手,特别是如果字段文本需要非文本排序(即,如果您希望“2”在“10”之前出现)。

我建议您从C#中对ColumnsDefinition执行一次查询,然后根据该查询选择几种不同查询中的一种来选择/排序数据。

答案 1 :(得分:0)

向ColumnDefinition添加DefaultValue。如果值不是默认值,则仅在ColumnsValues中添加值。这将加速很多事情。

我讨厌这类系统的事情是,在dev / stage / production之间传输更改是非常困难的,因为你必须保持表的结构和内容同步。