繁体   English   中英

事实表中的物理Pkey

[英]Physical Pkey in Fact table

我在接受采访。 我为他们做了一些代码,他们很想知道为什么事实表中没有PKEY,为什么有重复数据。 在我看来,FACT可以保存昏暗的外键,并且不需要物理PKEY。 并且在明显点上,外键列将具有重复项。 那是什么目的。 给我展示不同阶段的不同事实。 现在,从逻辑上讲,某些组合键实际上可以构成主表,但是在数据库中将其作为物理表是一个好方案。

总结我的问题。 1. FACT物理上是否应具有主键? 2.我们可以在fkey列的集合上使用物理PKEY吗(我不认为ms sql会允许这样做)? 3. FACT是否应该仅出于pkey的要求就具有代理密钥? 我们可以在日期等其他重要列上订购吗?

期待有待对此有所不同的意见。

我要假设,当访调员询问事实表的主键时,他们在询问它是否需要代理主键(即唯一的数字,通常由序列或自动递增生成)。

在Kimball方法中,替代主键用于维度表中。 除了少数例外,事实表不需要代理主键。 事实表具有主键,但它是由指向维度的外键列的子集组成的组合键,这使得唯一标识符适合作为主键。 此键是物理的,因为您在创建表时定义它,而数据库通常会为已定义的主键建立索引。

这种概括的例外是:

  • 有时,业务规则允许使用相同的事实行。 在这种情况下,您需要一个代理密钥来唯一标识事实记录。
  • 如果您具有代理主键,则某些ETL工具的性能会更好,尤其是当您需要ETL更新/插入一行然后删除先前的事实记录时,这种情况尤其如此。

在这些情况下,代理主键是有益的。 但是,这不是您要暴露给最终用户的东西,它仅仅是满足技术需求的一种便利。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM