没有代理键的SCD 1尺寸

问题描述 投票:0回答:1

[This reference to Kimball group声明所有维度都应具有替代键,除了一些非常可预测的维(例如日期补偿)。

我的情况与SCD Type 1 Wiki page中所述的情况完全相同:

从技术上讲,不需要替代键,因为该行将由自然键(Supplier_Code)唯一。

数据是从操作系统中加载的,没有代理键,而我基于单个且唯一的xxx_code列在ETL中计算代理键。 SCD类型1,满载。

在我的情况下,是否有任何理由使用代理密钥而不是从xxx_code列中创建自然密钥?

sql database-design data-warehouse dimensional-modeling star-schema
1个回答
0
投票

代理键具有某些优点:

  • 它们保护数据,因此内置密钥不必在任何地方都可见。
  • 它们允许更改代理密钥。
  • 代理键通常是数字,比复合键或字符串更有效。

话虽如此,自然键有时可能非常有用。例如,我使用相当复杂的系统链。在每个系统中引入新密钥刚开始变得令人困惑-例如,这是产品代码。

尽管我偏爱代理键,但在这种情况下,自然键会很有用。重要的是,这样的键是主键,它们实际上不能更改值,并且它们(最好是数字)(对于外键关系更有效)。

© www.soinside.com 2019 - 2024. All rights reserved.