дизайн склада: отслеживание отсутствия события - PullRequest
0 голосов
/ 15 декабря 2018

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

Мне нужно отслеживать, посещал ли пользователь курс и не посещал ли он курс.

Я думал о сохранениизапись для каждого пользователя и курса в таблице фактов, одна, если они посещали, и одна, если они не посещали.

Должен ли я хранить записи, не посещаемые, или отсутствие записи означает отсутствие посещаемости?

1 Ответ

0 голосов
/ 16 декабря 2018

К вашему списку таблиц я бы также добавил измерение даты.Я бы назвал пользовательское измерение чем-то вроде измерения учащегося.

Таким образом, ваш список таблиц будет выглядеть следующим образом:

Fact_Attendance

Dim_Student

Dim_Course

Dim_Date (Следующая ссылка описывает, как можно построить измерение даты: https://www.mssqltips.com/sqlservertip/4054/creating-a-date-dimension-or-calendar-table-in-sql-server/)

Этот факт можно создать в виде таблицы фактов моментального снимка.Создайте ряд для каждого студента на курс в день.Это поможет вам получить представление о данных, чтобы ответить на такие вопросы, как:

Сколько студентов посещало курс в течение недели / месяца?Пришел ли конкретный студент на курс в определенную дату?

Хорошей отправной точкой для вас была бы Матрица автобуса Kimball.

https://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/kimball-data-warehouse-bus-architecture/

...