星型模式设计:当源系统多对一(N:1)时,使用 2 维还是 1 一致维?

Posted

技术标签:

【中文标题】星型模式设计:当源系统多对一(N:1)时,使用 2 维还是 1 一致维?【英文标题】:Star Schema Design: Use 2 Dimensions or 1 Conformed Dimension when source systems relate many to one (N:1)? 【发布时间】:2014-02-06 22:30:25 【问题描述】:

我正在创建一个星型模式来为学校的术语和课程建模。

学习管理系统 (LMS) - 上课的地方,将每个课程与特定的 LMS 学期相关联。

学生信息系统 (SIS) - 学生在其中注册课程,以比 LMS 更精细的方式对条款进行建模。因此,每个 LMS 术语都有多个 SIS 术语。

每条事实记录都以班级内的学生为粒度,并与 1 个 LMS 学期相关联。

看来我可以制作二维表:DimSisTerm 和 DimLmsTerm。

或者,我可以制作 1 个符合要求的维度表:DimTerm

在单一符合维度的情况下,每个 SIS 术语将有 1 条记录,但是 LMS 术语键及其属性将针对所有相关的 SIS 术语记录重复。

之前经历过这种情况的人能否就这两种情况之间的权衡提供指导?

【问题讨论】:

【参考方案1】:

这是一个非常标准的 1:n 层次结构,您可以为其创建一个维度。重复值被认为是维度表的一个有价值的属性,以避免连接。

【讨论】:

我已经看到了这个答案的价值,因为我已经减少了维度的数量,从而实现了更好、可能更快的报告设计——而雪花模式现在真的是明星。

以上是关于星型模式设计:当源系统多对一(N:1)时,使用 2 维还是 1 一致维?的主要内容,如果未能解决你的问题,请参考以下文章

星型模式建模 - 多对多

观察者模式

Xcode 4.2.1 Storyboard 多对一视图返回

总和和不同计数措施(星型模式设计公案)

MySQL基础:多表查询

在星型模式表设计中包含关系有啥好处?