我们是否必须使用事实表进行报告?

时间:2011-06-28 14:57:07

标签: report star-schema datamart

我正在建立一个用于报告目的的数据集市。 我是这个领域的新手,正在寻求帮助。

我有一个事实表和两个维度表。 事实表只有3个字段,它的主键和对两个维表的外键引用。 二维表具有与1)phonenumbers和2)扩展号相关的数据。 (我无法组合这些维度表,因为它们有不同的信息)

如您所见,我的事实表没有任何定量列。

我想生成一个显示电话号码和相应扩展名的报告。

我可以通过在两个维度表上执行连接来获取此信息。

所以我的问题是我必须在报告中使用事实表吗?即我是否应首先从phonenumber表中获取密钥,在事实表上执行join,获取扩展密钥并在扩展表上执行join?

OR

只需加入两个维度表来生成报告,因为在这种情况下可以生成报告吗?

我们是否必须参与事实表?

感谢阅读。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

  

我必须在报告中使用事实表吗?即我是否应首先从phonenumber表中获取密钥,在事实表上执行join,获取扩展密钥并在扩展表上执行join?

通常,这是必要的。

  

只需加入两个维度表来生成报告,因为在这种情况下可以生成报告吗?

有时,这也有效。

  

我们是否必须参与事实表?

取决于人际关系。

如果您有维度信息的“层次结构”,那么的两个维度可以直接相关。在这种情况下,事实表不会将它们绑在一起。事实与细节有关;详细维度与摘要相关联。这很少见。

尺寸变化。

如果您有两个或更多缓慢变化的尺寸,那么您的尺寸可能包含大量“之前”的关系信息。

Fact 1: Phone xxx-xxx-xxxx, Extension yyyy
Fact 2: Phone xxx-xxx-xxxx, Extension zzzz

然后,另一个加载应用SCD规则将zzzz修改为aaaa,截至7/1/11您可以使用旧的维度值以及新的维度值,并使用适用的日期范围。

现在,需要事实(和日期范围)来定义您将获得的维度值的哪个副本。

Fact 2: Phone xxx-xxx-xxxx, Extension zzzz, from beginning to before 7/1/11.
Fact 2: Phone xxx-xxx-xxxx, Extension aaaa, from 7/1/11 to end.

因此,您可能需要事实,维度和时间来理清关系。