2010-04-27 42 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