我跟踪课程的出勤率。有用户维度、课程维度和事实表。
我需要跟踪用户是否参加过课程以及他们是否参加过课程。
我正在考虑在事实表中存储每个用户和课程的记录,如果他们参加了,则记录一个,如果他们没有参加,则记录一个。
我应该存储未出席记录还是应该没有记录表明未出席?
我跟踪课程的出勤率。有用户维度、课程维度和事实表。
我需要跟踪用户是否参加过课程以及他们是否参加过课程。
我正在考虑在事实表中存储每个用户和课程的记录,如果他们参加了,则记录一个,如果他们没有参加,则记录一个。
我应该存储未出席记录还是应该没有记录表明未出席?
在您的表格列表中,我还将添加一个日期维度。我会将用户维度命名为学生维度。
因此,您的表格列表将如下所示:
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 Bus Matrix 是一个很好的起点。