2

Начальный размерный вопрос:Таблица перекрестных ссылок ... измерение или факт?

Как вы моделируете отношения между измерениями вне формального «бизнес-процесса»? Например, скажем, вы моделировали лигу бейсбола Fantasy. Некоторыми очевидными измерениями были бы Team and Player, и примерный факт был бы результатом того, что игрок выходил на летучую мышь. То, что я смущен, - это просто отслеживать, какие игроки находятся в какой команде.

В третьей нормальной форме у меня будет таблица с перекрестными ссылками с командами и игроками FK, а также любые дополнительные поля, относящиеся конкретно к комбинации двух (дата набора, индикатор скамейки и т. Д.). Будет ли это иначе с звездной схемой? Если нет, то эта таблица считается таблицей фактов, без каких-либо числовых атрибутов?

Часть, которая меня смущает, заключается в том, что эта таблица перекрестных ссылок никогда не используется само по себе. Это было бы разумно только при подключении к другим таблицам фактов, чтобы получить список игроков в команде, связанной с другим фактом/процессом. Это заставляет его чувствовать себя скорее как измерение, чем факт.

ответ

1

В моделировании размеров вы должны выбрать, какой процесс вам нужен. Если отношения Team Player являются второстепенными по отношению к вашей модели, вы можете просто игнорировать его и знать, что игрок принадлежит команде, когда он отправляется на лету для команды.

Конечно, это исключает игроков, которые никогда не биты.

Если вы хотите рассмотреть эти отношения, будучи многими и многими, очевидное решение - это еще одна таблица фактов. Стол фактов может быть даже фактом (если у вас нет дополнительной информации, но в этом случае зарплата игрока будет очевидным и важным фактом).

0

Другой вариант - использовать SCD типа 2 для плеера. Это способ хранения изменений атрибутов со стороны игрока с течением времени.

Итак, для одного игрока у вас могут быть четыре записи измерений, так как этот игрок перемещается по четырем командам. Записи о размерах имеют даты начала и окончания, поэтому, если игрок перешел в январе и не начал играть до февраля, эта информация все еще сохраняется.

Вы отслеживаете любой атрибут игрок на этом пути, то есть травмы и т.д.

Это способ отслеживания «медленные» изменения без необходимости специального факта.

Если вам нужен какой-то исторический отчет о статусе, вы просто присоединяетесь к размеру игрока к измерению даты.

Посмотрите на тип II в этой статье:

http://en.wikipedia.org/wiki/Slowly_changing_dimension