2014-11-12 1 views
1

Я создаю хранилище данных из базы данных магазина, и у меня есть вопрос относительно дизайна моих измерений и фактов.Должен ли я создать таблицу фактических фактов или Denormalise my table

В базе данных магазина существует таблица Person, Person_Address и Person_Address_Type. Они связаны другим именем Entity_Address_ID, которое связывает три таблицы по их первичным ключам, чтобы предоставить подробную информацию о том, что такое адрес человека и какой тип адреса он имеет.

Мой вопрос: должен ли я создать измерение для всех трех таблиц и таблицу фактов без фактов, чтобы связать их вместе или я должен де-нормализовать мои измерения и добавить к каждому измерению внешний ключ для адреса и адреса они тоже связаны?

Вот очень быстрый UML, что текущая база данных выглядит как дать разъяснения UML of Problem

+1

Это больше похоже на вопрос для [dba.se] или, может быть, [programers.se]. – senshin

+0

Это из-за его концептуального характера? Я думал, что тег Dimensional Modeling подходит, может быть? –

+0

В значительной степени. Я не думаю, что здесь нет темы; Я просто подозреваю, что вы можете получить ответы на одном из других сайтов SE. – senshin

ответ

1

Вы должны создать измерение Человек с набором атрибутов адреса (почтовый адрес, платежный адрес и т.д.), т.е. Денормализовать все эти данные и загружать их в одну таблицу.

+0

Могу ли я спросить, почему? это лучшая практика или ваши личные предпочтения? Учитывая, что эта база данных фактически является базой данных MSDN Im, полагая, что, по-видимому, была причина для их создания базы данных следующим образом? –

+0

Да, это правильно, однако правильно, если я ошибаюсь, но в размерном моделировании, таблицы фактов - 3NF, но dims - 2NF? –

+0

Да, но по модели 3NF я имел в виду немерную модель. Я предположил, что Person является лишь одним из многих аспектов вашего склада. Это верно? У вас есть другие размеры и факты на складе? Или вам нужна размерная модель только для четырех таблиц из вопроса? –

Смежные вопросы