我在接受采访。我为他们做了一些代码,他们很想知道为什么事实表中没有PKEY,为什么有重复数据。在我看来,FACT可以保存昏暗的外键,并且不需要物理PKEY。并且在明显点上,外键列将具有重复项。那是什么目的。给我展示不同阶段的不同事实。现在,从逻辑上讲,一些组合键实际上可以构成主表,但是在数据库中将其作为物理表是一个好方案。
总结我的问题。 1. FACT物理上是否应具有主键? 2.我们可以在fkey列的集合上使用物理PKEY吗(我不认为ms sql会允许这样做)? 3. FACT是否应该仅出于pkey的要求就具有代理密钥?我们可以在日期等其他重要列上订购吗?
等待响应是要了解对此的不同看法。
答案 0 :(得分:1)
我要假设,当访调员询问事实表的主键时,他们正在询问是否需要代理主键(即唯一的数字,通常由序列或自动递增生成)。 / p>
在Kimball方法中,替代主键用于维度表中。除了少数例外,事实表不需要代理主键。事实表具有主键,但它是由指向维度的外键列的子集组成的组合键,这使得唯一标识符适合作为主键。该键是物理的,因为您可以在创建表时定义它,而数据库通常会为已定义的主键建立索引。
这种概括的例外是:
在这些情况下,代理主键是有益的。但是,这不是您要暴露给最终用户的东西,它仅仅是满足技术需求的一种便利。