我想允许用户在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上工作。
感谢。
答案 0 :(得分:0)
我认为这实质上是WebParts.SqlPersonalizationProvider的工作方式,这并不一定意味着它是最好的,但确实意味着在一些聪明的人想到它一段时间之后,这就是他们想出来的。
对给定字段进行排序会有点棘手,特别是如果字段文本需要非文本排序(即,如果您希望“2”在“10”之前出现)。
我建议您从C#中对ColumnsDefinition执行一次查询,然后根据该查询选择几种不同查询中的一种来选择/排序数据。
答案 1 :(得分:0)
向ColumnDefinition添加DefaultValue。如果值不是默认值,则仅在ColumnsValues中添加值。这将加速很多事情。
我讨厌这类系统的事情是,在dev / stage / production之间传输更改是非常困难的,因为你必须保持表的结构和内容同步。