我正在设计一个数据模型,用于报告参加课程的人员。我试图弄清楚我是否应该使用一个或两个事实表。
我需要计算的措施是:
- 学生总数
- 少数民族(按国籍过滤)
- 通过课程的学生数量
请注意,仅仅因为学生参加课程,并不意味着他们参加了考试,因此他们可能还没有课程成绩。
这给了我两组不同粒度的事实数据。
答案 0 :(得分:0)
我看不出有两个单独的表用于注册和结果的任何优势,至少以图中所示的方式。
很难确保学生只有她所注册课程的成绩。
有关enrolement 和结果数据的查询将始终必须在同一复合键上评估两个表。
如果学生每个注册课程最多只有一个结果,您可以将结果和奖励日期添加到注册实体,这两个可能为空。
如果您的用例中只有部分事实相关,则可以使用两个数据库视图轻松模拟两个表格场景。与两个表相比,两个视图不会出现一致性问题
如果学生可能有多个结果,可能是重复考试失败,那么结果实体应该是1:n链接到注册实体。