2012-02-10 86 views
1

我正在將一些數據加載到關係數據庫中,但我的同事和我正在討論關於哪種格式遵循關係理論和標準。由於我們不是專家,我們希望得到一些專家意見。以下哪種數據結構更可接受,爲什麼?

(1)第一種格式:

Region Time Variable  Value 

    1  1  GDP  -0.46113508 
    1  2  GDP  0.72478547 
    1  3  GDP  0.66753244 
    1  1  GNP  1.07924683 
    1  2  GNP  -0.45020407 
    1  3  GNP  0.25669344 
    2  1  GDP  1.00576177 
    2  2  GDP  -0.21365634 
    2  3  GDP  -0.47925263 
    2  1  GNP  -1.27190722 
    2  2  GNP  -0.26071341 
    2  3  GNP  -0.91423615 
    3  1  GDP  -1.32393360 
    3  2  GDP  -1.13996826 
    3  3  GDP  -2.16641876 
    3  1  GNP  1.19636349 
    3  2  GNP  -0.22511481 
    3  3  GNP  0.49509021 
    4  1  GDP  -0.85892203 
    4  2  GDP  -0.46614367 
    4  3  GDP  0.81645666 
    4  1  GNP  -0.45178976 
    4  2  GNP  0.41263984 
    4  3  GNP  0.26416377 
    5  1  GDP  0.40089081 
    5  2  GDP  0.14561550 
    5  3  GDP  0.52636087 
    5  1  GNP  0.64368706 
    5  2  GNP  1.22117207 
    5  3  GNP  0.06021922 

(2)第二格式:

Region Time  GDP   GNP 

    1 1 -0.4611351 1.07924683 
    1 2 0.7247855 -0.45020407 
    1 3 0.6675324 0.25669344 
    2 1 1.0057618 -1.27190722 
    2 2 -0.2136563 -0.26071341 
    2 3 -0.4792526 -0.91423615 
    3 1 -1.3239336 1.19636349 
    3 2 -1.1399683 -0.22511481 
    3 3 -2.1664188 0.49509021 
    4 1 -0.8589220 -0.45178976 
    4 2 -0.4661437 0.41263984 
    4 3 0.8164567 0.26416377 
    5 1 0.4008908 0.64368706 
    5 2 0.1456155 1.22117207 
    5 3 0.5263609 0.06021922 

是否有人可以請教的格式是更好的最好的支持和推理參照數據結構標準和理論。

在此先感謝!

+0

客觀正確的答案需要更多信息。你想如何使用這些數據?數據如何在未來發生變化? – 2012-02-10 04:47:18

+3

沒有上下文很難說。第一種格式是面向未來的,支持任意數量的「變量」值。第二種格式佔用較少的空間,但可以支持附加變量的問題(大多數數據庫最多支持大約1,000列)。什麼是理想完全取決於您正在建模的系統的業務規則。 – 2012-02-10 04:51:16

+0

如果GDP和GNP是國民生產總值和國民總收入,我更喜歡第二種佈局。我不想兩次查詢數據庫以獲取相同地區和時間的信息。 – 2012-02-10 05:08:45

回答

3

第二個。第一個是EAV反模式的實現。

要知道爲什麼第一個表是問題,請想象我們對問題域沒有任何瞭解。我們只知道目前有兩種不同類型的浮點數值,分別爲GDP和GNP,我們希望增加第三種PWT,並且已知PWT的值被限制在

  • 0.0 < PWT < = 1500.0

添加將該數據寫入到第一表是簡單的。將約束條件添加到第一個表中,該PWT必須介於0到1500之間,是一個不同的故事。

將列添加到第二個表也很簡單。並且添加一個檢查約束來保證值在正確的範圍內既簡單又容易。

想象一下,我們現在想要添加第四種價值,其價值限於美元金額> 0.您如何管理第一個表中的定點價值?但是在第二個表格中添加該列及其約束是非常簡單的。