Я разрабатываю модель данных для отчетности против людей, которые проходят курсы. Я пытаюсь выяснить, могу ли я использовать одну или две таблицы фактов.Одна или несколько таблиц фактов
меры мне нужно будет рассчитать, являются:
-Total число студентов
-Количество национальностей (и фильтр по национальности)
-Количество студентов, прошедших курс
Обратите внимание, что только потому, что студент находится на курсе, это не значит, что они сдавали экзамены, поэтому они могут еще не получить результат курса.
Это дает мне два набора фактических данных в разных деталях.
гранулярность всех студентов на курсе.
гранулярность студентов, которые завершили курс и прошли и провалились.
Мои варианты, как я вижу их, являются:
две отдельные таблицы фактов в различных степеней детализации, которые разделяют несколько размеров.
Одна таблица фактов, но для любых учащихся, которые не прошли/не смогли, они будут связаны с записью в DimResult, которая содержит описание «No Result Yet».
Существует ли набор руководящих принципов для использования при смешивании детализации, или это случай, когда оба ответа будут работать, и решать, решать ли они мне?
Схема, показывающая план с обеими таблицами фактов, показана ниже.
Спасибо за любые посоветуйте
Я думал, если это станет доступно для бизнес-пользователей, им будет легче играть с данными в сводной таблице, если каждая таблица фактов имеет только одну гранулярность. это оправдание достаточно? теперь я получаю дополнительное усилие ETL, но для меня это не проблема. –
Эти пользователи будут играть непосредственно в таблицах базы данных? Если это так, они должны быть достаточно опытными, чтобы правильно интерпретировать структуру данных. Если нет, вы можете предоставить им некоторый пользовательский интерфейс, который отражает разницу между двумя типами фактов. Пожалуйста, обратите внимание на дополнение к вопросу о представлении базы данных. – TAM