外部系统生成的主键

时间:2011-09-26 14:23:38

标签: sql-server database

以下方案的一般准则是什么:

您需要创建一个表,其中PK是从外部系统生成的值。它是独一无二的,类似于使用SSN。

这是否有必要成为主键?特别是考虑到它将用于与其他两个表的外键关系。或者,除了唯一键之外,创建自动递增ID字段是否更好,并在表关系中使用自动递增ID?

3 个答案:

答案 0 :(得分:7)

就个人而言,我不相信外部系统的ID。当然,他们今天会向你保证,它将是独一无二的,永不改变,永远不会被重用。但是,在未来的某一天......

创建自己的自动递增ID,并将其用于PK和FK关系。仅保留其ID作为参考。

答案 1 :(得分:0)

我总是创建自己的代理主键,并将自然标识符设置为辅助唯一键。

Scott W Ambler对两种策略here进行了很好的比较。

答案 2 :(得分:0)

使用您自己生成的自动生成的ID会在表格中为您提供另外一个包含多余信息的字段。如果外部ID类似于SSN,我认为你几乎不会收到重复。我选择将外部ID作为PK。