2012-02-10 73 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.您如何管理第一个表中的定点价值?但是在第二个表格中添加该列及其约束是非常简单的。