【发布时间】:2019-05-06 07:49:15
【问题描述】:
如果用户使用两个不同的 order_id 订购了相同的产品; 订单是在相同的日期-小时粒度内创建的,例如
order#1 2019-05-05 17:23:21
order#2 2019-05-05 17:33:21
在数据仓库中,我们是否应该像这样将它们分成两行(选项1):
| id | user_key | product_key | date_key | time_key | price | quantity |
|-----|----------|-------------|----------|----------|-------|----------|
| 001 | 1111 | 22 | 123 | 456 | 10 | 1 |
| 002 | 1111 | 22 | 123 | 456 | 10 | 2 |
或者只是将它们与合计数量放在一行中(选项 2):
| id | user_key | product_key | date_key | time_key | price | quantity |
|-----|----------|-------------|----------|----------|-------|----------|
| 001 | 1111 | 22 | 123 | 456 | 10 | 3 |
我知道如果我把order_id作为退化维度放在事实表中,它应该是选项1。但在我们的例子中,我们并不想保留 order_id。
另外我曾经看过一篇文章,说过滤掉所有维度后,事实表中应该只有一行数据。如果这句话是正确的,选项 2 将是选择。
有什么原则可以参考吗?
【问题讨论】:
标签: data-warehouse