繁体   English   中英

一个或多个事实表

[英]One or multiple fact tables

我正在设计一个数据模型,用于针对参加课程的人员进行报告。 我试图弄清楚我是否应该使用一两个事实表。

我需要计算的度量是:

-学生总数

-国籍数(并按国籍过滤)

-通过课程的学生人数

请注意,仅仅因为学生正在上课程,并不意味着他们已经参加了考试,因此他们可能尚未获得课程结果。

这给了我两组不同粒度的事实数据。

  1. 一门课程中所有学生的粒度。

  2. 完成课程并通过和失败的学生的粒度。

我看到的选择是:

  1. 两个不同事实的两个单独的事实表共享一些维度。

  2. 一个事实表,但是对于未通过/未通过的任何学生,他们将链接到DimResult中的条目,该条目的描述为“尚无结果”。

混合粒度时是否有一套使用指南?或者两个答案都能奏效并由我自己决定的情况?

显示带有两个事实表的计划的架构如下所示。

谢谢你的建议

在此处输入图片说明

我看不到拥有两个分别用于注册和结果的表格的优势,至少在您的图表所示的方式上是如此。

  • 很难确保学生只获得同时也报名参加的课程的成绩。

  • 有关包封结果数据的查询将始终必须评估同一复合键上的两个表。

如果每个课程中一个学生最多获得一个结果,则可以将结果和授予日期添加到注册实体中,这两个结果可能为空。

如果您有仅部分事实相关的用例,则可以使用两个数据库视图轻松地模拟两个表方案。 与两个表相比,两个视图不会出现一致性问题

如果一个学生可能有一个以上的结果,可能是通过重复一次失败的考试,则结果实体应与注册实体1:n链接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM