[英]One or multiple fact tables
我正在设计一个数据模型,用于针对参加课程的人员进行报告。 我试图弄清楚我是否应该使用一两个事实表。
我需要计算的度量是:
-学生总数
-国籍数(并按国籍过滤)
-通过课程的学生人数
请注意,仅仅因为学生正在上课程,并不意味着他们已经参加了考试,因此他们可能尚未获得课程结果。
这给了我两组不同粒度的事实数据。
一门课程中所有学生的粒度。
完成课程并通过和失败的学生的粒度。
我看到的选择是:
两个不同事实的两个单独的事实表共享一些维度。
一个事实表,但是对于未通过/未通过的任何学生,他们将链接到DimResult中的条目,该条目的描述为“尚无结果”。
混合粒度时是否有一套使用指南?或者两个答案都能奏效并由我自己决定的情况?
显示带有两个事实表的计划的架构如下所示。
谢谢你的建议
我看不到拥有两个分别用于注册和结果的表格的优势,至少在您的图表所示的方式上是如此。
很难确保学生只获得同时也报名参加的课程的成绩。
有关包封和结果数据的查询将始终必须评估同一复合键上的两个表。
如果每个课程中一个学生最多获得一个结果,则可以将结果和授予日期添加到注册实体中,这两个结果可能为空。
如果您有仅部分事实相关的用例,则可以使用两个数据库视图轻松地模拟两个表方案。 与两个表相比,两个视图不会出现一致性问题
如果一个学生可能有一个以上的结果,可能是通过重复一次失败的考试,则结果实体应与注册实体1:n链接。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.