Вам, вероятно, все еще нужно будет использовать внешние связи между фактами.
Вы определенно должны быть в состоянии соединиться со всеми измерениями. К сожалению, мы не можем сделать это с работающим хранилищем данных, потому что нам не хватает записи в большинстве таблиц измерений для представления пустых записей.
EDIT
Факты - это числовые показатели (например, доллары в финансовой транзакции), а измерения - дескрипторы данных (например, клиент, участвующий в финансовой транзакции, дата рождения клиента). Лучше всего ссылаться на хорошую книгу хранилищ данных. Я рекомендую набор инструментов хранилища данных Ральфа Кимбалла.
Таблица фактов содержит как факты, так и внешние ключи к измерениям. Таблица измерений содержит идентификатор измерения, текстовые описания (например, имя клиента) и, возможно, внешние ключи для других измерений (например, идентификатор измерения даты для поля даты рождения).
Иногда атрибут измерения может быть логически нулевым. Это не обязательно хранится как ноль, и на моем рабочем месте мы используем 0 для представления нулевых измерений. На данный момент в голову приходит поле «Метод подтверждения смерти» (например, просмотренное свидетельство о смерти), которое имеется в нашей таблице измерений клиента. Конечно, большинство наших клиентов не мертвы, поэтому мы заполняем это поле 0. Наша таблица измерений метода проверки смерти, тем не менее, хранит только реальные методы проверки смерти, поэтому она не имеет записи с 0 (не применимо) и поэтому мы вынуждены использовать левые соединения к нему.