我很难为OLAP多维数据集建模。
我的比喻是:我有一份学生名单。每个人都有一个主要的学习科目,零个或更多的未成年人,总共有五个。
原始数据如下所示:
Student ID | Major | Minor 1 | Minor 2 | Minor 3 | Minor 4 | Minor 5
-----------------------------------------------------------------------------
12345 English French Null Null Null Null
23456 French Engineering Null Null Null Null
34567 Math French Biology Physics Null Null
45678 Physics Null Null Null Null Null
56789 French Math Physics Chemistry Null Null
67890 Math French English Biology Null Null现在你可以看到,这些科目都很普通,只是对一些学生来说,有些是专业,另一些是未成年人(在那里他们有未成年人)。这意味着我将有一个dimSuject维数。
我可以这样描绘:
factStudent -> dimSubject
这样我就可以去掉学生的数量,看一张专业名单,列出每个专业的学生人数。
我想要做的是,能够放下一个dimMinor,它将深入到每个辅修科目的计数中。Preferebly是所有被选科目的唯一参考,不管它是大调还是小调。我考虑过一个中间factMinor表来存储对学生的引用,以及对一个主题的引用,但是这是否保持了粒度呢?我也想不出如何利用中间事实作为一个维度进行钻研。
发布于 2012-04-02 09:05:59
我要将事实表规范化为以下形式:
StudentId Level Subject
34567 Major Math
34567 Minor 1 French
34567 Minor 2 Biology
etc.并将该级别添加为维度。
https://dba.stackexchange.com/questions/12006
复制相似问题