以下方案的一般准则是什么:
您需要创建一个表,其中PK是从外部系统生成的值。它是独一无二的,类似于使用SSN。
这是否有必要成为主键?特别是考虑到它将用于与其他两个表的外键关系。或者,除了唯一键之外,创建自动递增ID字段是否更好,并在表关系中使用自动递增ID?
答案 0 :(得分:7)
就个人而言,我不相信外部系统的ID。当然,他们今天会向你保证,它将是独一无二的,永不改变,永远不会被重用。但是,在未来的某一天......
创建自己的自动递增ID,并将其用于PK和FK关系。仅保留其ID作为参考。
答案 1 :(得分:0)
我总是创建自己的代理主键,并将自然标识符设置为辅助唯一键。
Scott W Ambler对两种策略here进行了很好的比较。
答案 2 :(得分:0)
使用您自己生成的自动生成的ID会在表格中为您提供另外一个包含多余信息的字段。如果外部ID类似于SSN,我认为你几乎不会收到重复。我选择将外部ID作为PK。