30、无事实事实表:建模条件与活动对比分析

无事实事实表:建模条件与活动对比分析

1. 无事实事实表的应用场景

无事实事实表可用于那些与事件或活动无明显对应关系的情况,常见示例如下:
- 跟踪分配给每个客户的销售人员。
- 记录个人对项目或福利的资格。
- 记录恶劣天气警报生效的时间。
- 捕捉特定时间活跃的营销活动。

2. COUNT() 与 SUM() 的对比

在事实表中添加一个始终为 1 的事实列,可使 SQL 查询更易读,让查询使用 SUM() 函数而非 COUNT() 函数。然而,数据库管理员可能指出,这种技术可能有副作用,会在查询时产生不必要的数据库活动。

以统计 2009 年 1 月发生的联系人数量为例,当使用 COUNT() 时,数据库优化器只需统计索引中的“命中”数量,无需读取实际行;而使用 SUM() 时,数据库必须从磁盘读取行以获取值并求和,这会增加磁盘 I/O,尤其当 2009 年 1 月的行在磁盘上未聚集时,SUM() 会比 COUNT() 花费更长时间。

不过,添加常量值事实列仍很有用,但最好与数据库管理员讨论。而且,添加该列并不妨碍编写使用 COUNT() 的查询,COUNT() 和 SUM() 都是可用选项。

3. 条件建模的原因

事实表用于捕捉维度之间的关系,通常是在交易或活动的上下文中。而某一时刻的条件也能在特定上下文中关联维度,如销售人员与客户、产品与促销、个人与合格福利之间的关联。这些条件对理解订单、销售或福利参与等活动很重要。

例如,一个跟踪订单的星型模式,事实表 order_facts 的粒度是订单行,每行关联特定日期的客户、产品和销

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值