数据仓库设计问题

时间:2010-10-08 10:03:30

标签: olap

在我的OLTP数据库中,我有一个由教师和学生组成的布局。每个学生都可以成为任意数量教师的学生。学生也可以报名教师,但不一定要预定任何学费(课程)。

在数据仓库中,如何最好地建模?如果我为课程,教师和学生创建维度表以及学生所学课程的事实表,那么当教师想要查看学生所学课程时,这将有效。

但是,教师如何看到有多少学生注册了教师但还没有上过课?

在我的OLTP中,我有一个多对多的表(InstructorStudents),它们将每个学生与另外一个教师联系起来。在OLAP数据库中,这是不合适的。

在这种情况下,最好的架构是什么?在这种情况下,许多人会不适合?我无法存储学生表中哪些学生注册到哪些教师的列表,所以我觉得另一个维度表是必要的,但无法确定其中应包含的内容。

3 个答案:

答案 0 :(得分:1)

如果一个事实代表一个交易,你似乎有两个不同的事实:注册和放大教训。总有很多方法可以去,但也许你需要两个事实表。除了注册表将具有Class维度(类名,指导者名称等)之外,它们可能具有相似的维度。课程表将与课程维度相关联,但也与课程维度(日期,课堂使用等)相关联。

还有其他一些方法可以做到这一点,但是从编程和编程方面来看,它们会更加困难。报告视角。

答案 1 :(得分:0)

答案 2 :(得分:0)

您需要无事实的事实表。查看以下资源,该资源引用了一个接近您需要的示例

http://www.kimballgroup.com/1996/09/02/factless-fact-tables/