2014-09-25 72 views
0

我有數以百萬計的項目,我需要設置它們是否存在或許多不同的配置會隨着時間而改變。爲SQL列名使用多個參數的最佳實踐?

我有四個參數。

  1. Production
  2. 14.15
  3. Both-Local-General
  4. Exists

我想創建一個表,其中列名看起來像Production,14.15,Both-Local-General,Exists存儲布爾值是否存在對某一個項目該配置。這些項目將有一行。

參數將在整個時間內不斷變化,因此需要使用C#應用程序添加新列。

我想創建一個新的列,其中的配置每次都會有所不同。

這是一個壞主意嗎?

我應該將參數存儲在不同的表中嗎?還是有更好的方法來做到這一點?

回答

6

這是一個壞主意。爲什麼不能有一個名爲「配置」的表,其中有兩個字段「參數」和「值」。然後創建/更新/刪除行而不是列。要做到這一點,另一種方式似乎是完全濫用RDBMS。

0

您可能更喜歡使用像MongoDB或CouchDB這樣的NoSQL解決方案。這些解決方案不會強制您的數據使用某種架構,這將緩解數據不斷增長時修改表的問題。

例如,在MongoDB中你可以有一個集合,其中第1行的樣子:

{ 
    id: 1, 
    production: myval, 
    14.15: myval 
} 

和第2行的樣子:

{ 
    id: 2, 
    production: myval, 
    14.20: myval 
} 

沒有必要過配置,從這個數據數據庫方面。您只需將它發送給您想要存儲的json並存儲它即可。

這是許多例子中的一個,NoSQL可能是您的問題更好的解決方案。

2

它更有效地爲參數名稱創建一個具有單列的表格,並使用PivotCase When來顯示它,就像您在查詢時所提到的那樣。