维度建模中事实表上的两个或多个类似计数

时间:2010-09-20 21:12:50

标签: sql database-design business-intelligence dimensional-modeling

我设计了一个事实表,用于存储特定日期维度和动作类型(如创建,更新或取消)的事实。事实只能创建和取消一次,但会多次更新。

myfact
---------------
date_key
location_key
action_type_key

这将允许我计算所有已完成的更新,为一段时间创建的所有新更新,并通过位置维度指定特定区域。

此外,我每个事实还有2个计数,即人数,建筑物数量。这些之间没有关系。而且我想询问有多少具有特定数量的事实,例如有多少有10个建筑物,有多少有9个等等。

这些最好的桌子设计是什么。基本上我看到以下选项,但我愿意听到更好的解决方案。

  1. 将计数作为参考信息添加到事实表中people_countbuilding_count

  2. 为每个存储有效选项的内容添加维度,即存储people dimension的{​​{1}}和存储key的计数和building dimension和一个计数。主要事实是keypeople_key

  3. 为计数添加一个维度,这些维度用于人员和建筑物计数,即building_key存储count dimension和通用计数。主要事实是keypeople_count_key

1 个答案:

答案 0 :(得分:0)

首先,您的计数在最纯粹的意义上基本上是“维度”(您可以将维度视为将记录分组以用于报告目的的方式)。但问题是维度建模是否是您想要做的。我认为你最好把它视为一个隐含的维度,而不是添加维度表。这实际上意味着维度表没有添加任何内容,并且他们创建了错误的极端情况,除非您需要跟踪与数字相关的大量信息,否则我认为这些错误并非常有用。

如果是我,我只会将计数添加到事实表中,而不是添加到其他表中。