2015-02-23 86 views
-2

我將按月將數據存儲到數據庫表中,我想知道哪種表結構最適合以下幾種。哪個SQL表結構更適合按月存儲數據?

對於它的價值,我將使用MySQL和寧願使用選項1

選項1 - (我認爲這是標準化)

month_id - tinyint unsigned 
value - int unsigned 

選項2 - 每個表格字段儲存1個月

january - int unsigned 
february - int unsigned 
march - int unsigned 
(etc to December.) 
+0

我不太清楚有什麼區別兩者之間,你能澄清?另外,你打算如何使用它?這似乎更容易,因爲這些值是衆所周知的,並且永遠不會改變,只需存儲月份編號而無需查找表。 – Siyual 2015-02-23 18:32:10

+0

這兩個選項都使用1個表格。選項1使用2個字段。選項2使用12個字段。 – Mex 2015-02-23 18:34:47

+0

啊,我看到了 - 如果你打算使用查找表,請使用第一個選項。 – Siyual 2015-02-23 18:36:28

回答

1

選項1.

如果您需要超過一年的時間,它很容易擴展。

然後,如果你需要在其他格式的數據,你可以使用:

Select 
    sum(case month_id when 1 then Value end) as January, 
    sum(case month_id when 2 then Value end) as February, 
    sum(case month_id when 3 then Value end) as March, 
    sum(case month_id when 4 then Value end) as April, 
    sum(case month_id when 5 then Value end) as May, 
    sum(case month_id when 6 then Value end) as June, 
    sum(case month_id when 7 then Value end) as July, 
    sum(case month_id when 8 then Value end) as August, 
    sum(case month_id when 9 then Value end) as September, 
    sum(case month_id when 10 then Value end) as October, 
    sum(case month_id when 11 then Value end) as November, 
    sum(case month_id when 12 then Value end) as December 
from MonthlyData 
相關問題