数据仓库中的一对一关系

时间:2012-09-04 10:43:30

标签: data-warehouse business-intelligence

简单场景:我想创建数据仓库,其中包含有关“问题”(成本,工作时间等)的信息。问题也有可能随时间而变化的状态。那么我正在创建一个名为issueRealization的事实表来描述每个问题。

我的问题是:我应该创建“问题”维度,这将给我一对一的关系beetwen维度和事实表?或者我应该将问题维度划分为最小维度,如状态等?

1 个答案:

答案 0 :(得分:4)

问题状态跟踪是使用累积快照事实表的一个很好的案例,用于跟踪问题状态随时间的变化。

例如,让我们说这是一个IT问题/错误/增强管理系统,问题只有3种状态,“创建”#39;和'进展中'并且'已解决'。

问题事实表看起来像这样:

ID Number (Degenerate Dimension)
Issue description (Degenerate dimension. You can also create a 1-1 table for these if it's not often used in reporting)
Type ID (bug/enhancement/etc, this is a dimension key)
Assigned Developer ID (Dimension key)
Current Status ID (Status dimension key)
Date Created (DATE dimension)
Created Flag (1 = created, 0 = otherwise)
Date In Progress (DATE dimension)
In Progress Flag (1 = created, 0 = otherwise)
Date Resolved (DATE dimension)
Resolved Flag (1 = created, 0 = otherwise)
Created Datetime (measure)
InProgress Datetime (measure)
Resolved Datetime (measure)
Worktime Interval (measure)
Cost (measure)

此表格的每个ID号为1行。

使用此类事实表,每次源系统修改问题时都会更新同一行。请注意我们如何为每种状态类型创建字段,以及日期时间记录,以便我们计算指标,例如"创建和解决状态之间的时间"。另外,我添加了一个间隔字段,以便您存储"实际"工作时间,例如"小时"开发人员提出修复。这很容易就是整数。

此表格可以回答有关问题的任何问题,并提供汇总以显示"有多少问题花费超过1周的时间来解决问题"等等。