我应该将事实表的列组合起来以使其更窄,还是应该使用更多列来保持用户友好性?

时间:2017-01-23 12:15:58

标签: sql database data-warehouse business-intelligence fact

我有一个Fact表,显示KPI的结果。有几个KPI,其中一些具有类似的输出。

我目前的专栏是这样的:

KPI_ID, DOCUMENT_ID, TRUE_FALSE_FLAG1, TRUE_FALSE_FLAG2, DURATION_3, DURATION_4

因此,对于KPI编号1(真假输出),最后三列将为NULL值。我应该合并TRUE_FALSE_FLAG1TRUE_FALSE_FLAG2吗?什么是最佳实践?

总共有18列,其中12列是真/假标志或“天数”(整数)形状的持续时间。

picture of the two alternatives

编辑: KPI 3可能是“问题的持续时间”,你会遇到一堆问题,每个问题都有一个documentID,表示为一行。 Dur_3将是5天,3天,10天等.KPI 4将是“订购修复后的修复延迟”,并且答案仍然是以天为单位的整数。但与KPI 3完全无关。

报告可能是“平均延迟修复”。所以大致从表中选择AVG(),其中KPI_ID = 3按KPI_ID分组。

1 个答案:

答案 0 :(得分:0)

根据您的最新评论,您最好使用备选方案2.具体而言,只要每个KPI仅为真/假,并且只有一个持续时间来存储,您就可以使用备选方案2。

编辑:使用备选方案2,每个KPI可以存储一个真/假值和一个持续时间值