我試圖建立一個數據表結構,最好支持以下標準:爲未知數量的列設計數據表的最佳方法是什麼?
1)我不知道表有多少列。
- 我在某些情況下可能需要6列,或在其他情況下需要10列。我不認爲這張桌子需要20列或更多列,但我也不能保證永遠不會需要。
2)我需要考慮存儲空間和報告速度。
- 此表需要存儲數百萬條記錄,並且報表將針對此表運行。我知道擺脫高度規範化的表格從報告的角度來看很困難,所以我想解除報告的規範化。但是,我也不知道是否爲了避免一些規範化而簡單地違約到大量的列是一個好主意,因爲我可能會在表的末尾的許多列中結束大量的NULLS,那些將(我認爲)都佔用了一些存儲空間。
3)如果我必須在存儲空間和報表性能之間進行選擇,我會在性能方面表現出色。我不是一個商業智能專家,我不是一個T-SQL專家(我將使用SQL Server),所以我很確定在這裏有很好的一點,我只是忽略了它。因此,我再次轉向了精彩的SO社區尋求建議,並且讓我的頭骨有一些感覺。
在這種情況下你會如何設計表格?我錯過了什麼細節,仍然需要考慮?
除了簡單提及困難的旋轉之外,是否有一個原因,您是否迴避了'product_property'和'product_property_value'表集? – 2011-04-05 20:40:59
凱文 - 不要product_property和product_property_value有它自己的問題?所有東西(日期,數字)都應該作爲字符串存儲,約束難以實現,當然,即使是非常基本的「選擇」查詢,也是如此。 – 2011-04-05 21:07:48
我對這些事情的理解是有限的,但是由於Rajesh引用的理由,我對此不甚瞭解。 – campbelt 2011-04-05 22:02:17