想象一下,我们收到了一项针对 3 种不同物品的日常消费习惯的健康调查结果,如下所示:
ID | 日期 | 年龄 | 国家 | 香烟每天 | 每天咖啡 | 每日啤酒 |
---|---|---|---|---|---|---|
1 | 2021-12-31 | 35 | 我们 | 0 | 3 | 0 |
2 | 2021-12-31 | 22 | 我们 | 5 | 5 | 1 |
3 | 2021-12-31 | 53 | 我们 | 3 | 4 | 0 |
... | ... | ... | ... | ... | ... | |
11276 | 2021-12-31 | 44 | 法国 | 3 | 4 | 0 |
我想在星型模式模型中对此进行建模。在事实表中,我创建了日期和项目维度的外键关系,以及具有国家和年龄的人口统计维度。然后我总结了受访者的数量。人口群体。如果受访者的数量超过 100,我将该组标记为代表人口。最后,我计算每组的总消费量和平均消费量。
日期 ID | 项目 ID | 人口统计 ID | 受访者人数 | 是代表 | 总消费 | 平均消费 |
---|---|---|---|---|---|---|
20211231 | 1 | 1 | 70 | 不 | 280 | 4 |
20211231 | 1 | 2 | 150 | 是的 | 750 | 5 |
20211231 | 1 | 3 | 220 | 是的 | 660 | 3 |
... | ... | ... | ... | ... | ... | |
20211231 | 3 | 1000 | 1 | 不 | 0 | 0 |
例如,有来自人口统计 1 的 70 名受访者(例如,国家 = 美国,年龄 = 18)。他们平均消费了第 1 项中的 4 个(例如香烟)。
通常我们应该努力在事实表中只保存事实和外键。但是我个人认为布尔标志的单独维度不会提供任何价值。是否可以将此标志视为生成维度,或者将其包含在事实表中是否被视为糟糕的设计?