包含非测量数据的事实表

时间:2019-03-01 07:12:27

标签: data-modeling data-warehouse

在下面的模型中,description是一个自由文本字段,用于描述员工缺席的原因。

此描述字段可以在事实表中并被视为退化维吗?

该值将主要用于列表报告或使用文字云的仪表板。

Model

2 个答案:

答案 0 :(得分:4)

您的设计正确。将自由文本作为退化维添加到事实表中没有任何问题。

仅在注释结构化时(即,如果它们是标准化的并且与事实记录有效地具有1:M关系),仅在维度中存储注释才有意义。如果将它们存储为自由文本,从而与事实具有1:1的关系,那么将它们转换为维度是一个大错误-您最终将获得与事实表一样高的维度。在适当的设计中,尺寸既宽又短,事实表又窄又高。高尺寸是一个问题,因为它们在性能方面非常昂贵。

它们也很难使用。假设您正在使用诸如PowerBI之类的报告工具。如果您将自由文本存储为事实表中的退化维,则使用起来很容易且直观-我可以编写以下内容:

Reason for Absence = SELECTEDVALUE( Fact[Description])

,注释将正确显示在报告中。完成。

但是,如果您将相同的注释存储在一个维度中,那么,很幸运,请确定如何将它们添加到报表中。

答案 1 :(得分:0)

否,事实表中不应包含描述性文本列。相反,此列应包含在维度中。

如果您要报告标签(关键字),我将为这些标签创建一个维度,然后解析说明以找到与事实相关的适当标签。例如,我从描述中看到2个标签(葬礼和病假)。我将创建一个维度DimAbsentReason来包含这些标签。

如果需要保留实际描述,则可以为描述创建一个维度(DimAbsentReason),并与事实表进行适当的关联。

相关问题