如何生成稳定的主键

时间:2019-03-14 09:57:02

标签: c# database unique

我将名称列表存储在数据库中。该列表没有每个记录的任何主键。这些名称随后会被另一个程序使用,因此需要将主键用作外键。

该列表由第三方拥有,这超出了我们的影响范围,因此我们不能强迫他们提供主键。

我使用增量编号进行PK,但是最近发现新记录可以插入列表中的任何位置,因此增量方法将失败。不能使用哈希代码,因为不能保证它们是稳定的。

我是否可以通过任何方式为这些记录生成一个稳定的主键,然后可以使用名称或其他任何方法来追溯到列表中的名称?

例如

第一天的清单如下

  1. 橄榄
  2. 杰克
  3. 哈里
  4. 雅各布
  5. 查理

假设963是Oliver的密钥(作为哈希码),并且该代码已由XYZ程序保存在其存储中,以供回溯到Oliver。

前几天,在中间添加了新名称“奥斯卡”

  1. 橄榄
  2. 杰克
  3. 奥斯卡
  4. 哈里
  5. 雅各布
  6. 查理

现在,Oliver的密钥是852,因为不能保证哈希码的稳定性,并且序列也受到干扰,因此XYZ程序无法使用密钥963引用Oliver。

0 个答案:

没有答案