ETL的数据库设计 - 替代与天然密钥



我们当前正在重新设计我们的ETL数据库。

到目前为止,我们已经使用了以下设计与天然密钥:customerId,orderID和SystemType

可以为不同客户重复订购,这就是为什么SystemType密钥可以帮助我们创建唯一的索引的原因。我们的连接很复杂,因为我们总是需要加入三个键。

我们想使用一个替代密钥,但是当其他提取物进入系统时,我们无法识别行,因为我们的替代密钥不包括在客户的提取物中。

我们应该将三列用作主要键,还是应该将它们连接到一个列中并将其用作主要键?我了解一个自动启动密钥不是一个选择。

您是否有可能分享有关此类系统首选的钥匙设计的想法?

谢谢,

Mathias

在ETL方案中,两者都通常。您需要自然钥匙来识别更新的行中的新键,并且在加载数据时必须保持其独特性。然后,如果需要,将替代密钥分配给任何新行。其他桌子中的外键可以参考替代钥匙或天然钥匙,无论您喜欢哪一键。在ETL方案中,如果自然钥匙属性已经作为其他表中的外键参考存在,那么通过模式层叠替代键的成本比仅像离开自然钥匙值一样贵得多。

最新更新