【发布时间】:2011-12-21 04:54:14
【问题描述】:
我正在阅读一篇关于 OLAP 和 OLAP Fact Tables 的 Wikipedia 文章,文章指出
事实表和维度表之间的所有外键都应该是代理项 键,而不是操作数据中重复使用的键。
但它没有说明原因。 那么,为什么要
事实表和维度表之间的所有外键都应该是代理项 键,而不是操作数据中重复使用的键。
?
【问题讨论】:
标签: olap
我正在阅读一篇关于 OLAP 和 OLAP Fact Tables 的 Wikipedia 文章,文章指出
事实表和维度表之间的所有外键都应该是代理项 键,而不是操作数据中重复使用的键。
但它没有说明原因。 那么,为什么要
事实表和维度表之间的所有外键都应该是代理项 键,而不是操作数据中重复使用的键。
?
【问题讨论】:
标签: olap
来自维基百科对Dimension Table的详细解释:
建议key field是一个简单的整数,因为key value没有意义,只用作事实表和维度表的连接字段。 代理维度键的使用带来了以下几个优点:
【讨论】:
来之不易的知识。
运营数据中的密钥可能随时更改格式。这样更容易。
这就像问“我应该使用 SSN 作为users 表的主键吗?”。虽然你(理论上)可以,但这不是一个好主意。
但我承认,我真的不知道我在说什么。我只记得我们的 Oracle 人员对此事有非常强烈的意见。 :-)
【讨论】:
我永远不会使用 SSN 作为任何表的主键。这些信息需要大量保护。将其用作 PK 意味着它将作为外键连接出现在其他表中。即使是公司独有的员工 ID,也不应使用其他方面不受影响的员工 ID。代理键工作得更快。它们允许将维度设置为 SCD 类型 2。即使您认为只需要类型 1,也可能会发生一些变化。
【讨论】: