2012-02-10 2 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

Дополнительная информация необходима для объективно правильного ответа. Как вы хотите использовать эти данные? Как изменится информация в будущем? –

+3

Трудно сказать без контекста. Первый формат является будущим, поддерживающим любое количество значений переменной. Второй формат занимает меньше места, но может сделать проблематичным вспомогательную дополнительную переменную (большинство баз данных поддерживают максимум 1000 столбцов). Идея полностью зависит от бизнес-правил модели, которую вы моделируете. –

+0

Если ВВП и ВНП являются валовым национальным продуктом и валовой национальный доход, я предпочитаю второй макет. Я не хочу дважды запрашивать базу данных, чтобы получить информацию для того же региона и времени. –

ответ

3

Второй. Во-первых, это реализация анти-шаблона EAV.

Чтобы понять, почему первая таблица является проблемой, представьте, что мы ничего не знаем о проблемной области. Мы просто знаем, что в настоящее время существуют два разных типа значений с плавающей запятой, обозначенные как ВВП и ВНП, и что мы хотим добавить третий, PWT, а значения PWT, как известно, ограничены диапазоном

  • 0,0 < ПОЛ < = 1500,0

Добавление этих данных в первой таблице просто. Добавив, что ограничение на первую таблицу, что PWT должно быть от 0 до 1500, это совсем другая история.

Добавление столбца во вторую таблицу также прост. И добавление ограничения проверки, чтобы гарантировать, что значения находятся в правильном диапазоне, является простым и легким.

Представьте, что теперь мы хотим добавить четвертый вид стоимости, который ограничен суммой в долларах> 0. Как вы будете управлять значением фиксированной точки в первой таблице? Но добавив, что столбец и его ограничение мертвы просты во второй таблице.