2010-04-27 45 views
1

我有一个表格与许多项目问题和其中一些问题是约20 CheckBoxes待检查。我想为这些项目创建一个SQL结构。SQL行代替列?

大部分数据位于项目表中。 但我不希望所有这些CheckBoxes作为项目表的列,而是我想创建一个表,其中所有这些CheckBoxes将表示为行。这个表格将有一个指定问题的组(所有这些复选框的父级),并且我将在项目和表格之间添加多个表格,并使用复选框创建[1] - [N N] - [1]结构。

但是我问,如果这是可以接受的,因为当查询到来的时候,我不会有列设置的条件,但行的表...

任何更好的主意吗? 谢谢

+0

这是可以接受的,你现在正在使用它,看看stackoverflow。那些upvotes/downvotes(它们是所有意图和目的的复选框),它转换为数据库中的行。 637000个问题,有一百万个答案,这个方法怎么会出错 – Hao 2010-04-27 13:49:33

回答

2

这是绝对可以接受的。我们以这种方式出售一些处理动态数据的产品。即使使用大数据集(1M +记录),它也是非常快的。

可以肯定的是,您将希望在SQL 2008上。像Table Value Parameters,MERGE和CTE这样的事情使得处理这种类型的数据变得更容易比旧版本的sql server。

提示:您可能会试图创建该数据的视图,以便选择它。如果列数少于10,那么您会没事的。除此之外,任何事情都可以通过代码实现行到列的转换(我在考虑报告)。

+1

这不仅是可以接受的,而且是正确的*。规范化为行而不是列可以索引和更改选项。 – Aaronaught 2010-04-27 13:40:16