数据库架构问题 - 非原子数据的维度创建

问题描述

我正在查看将导入 Power BI 的 Excel 文件。由于工作原因,我无法访问数据库本身,所以他们给了我一个 Excel 文件供我使用,然后我将上传到 Power BI。

在其中一个事实“表”上,它们的数据看起来像这样

s-ID     success%     late%     on-time%     schedule
1        10%          2%        5%           calculus-1;algebra-2
1        5%           10%       27%          Calculus-1
1        5%           3%        80%          algebra-2
2        33%          50%       3%           null
5        5%           34%       8%           English-1;English-10;theatre;art

我意识到这些数字没有任何意义,但这基本上是数据结构明智的方式。这个事实“表”中也有大约 100,000 条记录。

我有一个课程维度,但我不知道如何处理这个时间表列。如果我垂直拆分列,则度量列将被重复计算。

如何在 Power-BI 中对此进行建模并将计划智能地放入维度中?

我的目标是将数据建模如下:

  • 能够将计划拆分为单独的行,但不会同时重复计算所有值。

  • 我还想证明 s-ID 记录让学生参加了 包含微积分 1 和代数的类。

有时,教授在谈论适用于两者的主题时,会将 2 节课一起安排为 1 节课。可以有 2 个班级,也可以有多达 8 个班级,或者介于两者之间。

这是适合使用桥接表的场景吗?

解决方法

您可以使用 bridge table。在经典的维度模式中,附加到事实表的每个维度都有一个与事实表的粒度一致的值。但是在许多情况下,维度是合法的多值。就像你的例子一样,一个学生可以注册很多课程:

enter image description here

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...