Я создаю простую звездообразную схему в хранилище данных с двумя измерениями на основе бизнес-сущностей: dim_loan и dim_borrower. Есть также некоторые таблицы фактов, такие как fact_loan_status, в которой есть одна строка в месяц для каждого кредита, показывающая баланс на тот момент, и есть FK назад к dim_loan.

Итак, вот мой вопрос: если dim_loan имеет FK для borrower_id обратно в dim_borrower, нарушает ли это звездную схему? Почти все обсуждение звездообразной схемы вращается вокруг отдельных тусклых таблиц, которые имеют отношения FK только с таблицами фактов, а не с другими тусклыми. Создавать fact_loan_borrower для меня не имеет смысла для этих простых отношений один к одному.

Настраиваемые совокупные классы. Обратите внимание, что база данных преобразует результат в число с плавающей запятой:

0
seriestoo2 29 Апр 2020 в 02:52

1 ответ

Если dim_borrower и dim_loan имеют одинаковую кардинальность, то сохранение обоих идентификаторов (loan_id, заемщик_id) в fact_loan_borrower поможет вам повысить производительность. Вам нужно только одно соединение, чтобы получить информацию о заемщике или кредите из соответствующих измерений. Если вы сохраняете заемщик_ид как FK в dim_loan, вам нужно использовать два соединения, если вам нужно предоставить информацию о заемщиках.

Если два измерения имеют разную кардинальность, целесообразно присоединить измерение с низкой кардинальностью к таблице фактов — это поможет сделать таблицу фактов небольшой.

Выбор схемы звезды и снежинки полностью зависит от вас.

0
AbhishekK 29 Апр 2020 в 15:18