Как создать стабильный первичный ключ - PullRequest
0 голосов
/ 14 марта 2019

Я храню список имен в базе данных.В списке нет первичного ключа для каждой записи.Эти имена затем используются другой программой и поэтому требуют, чтобы первичный ключ использовался в качестве внешнего ключа.

Список принадлежит третьей стороне, которая находится вне нашего влияния, поэтому мы не можем заставить их предоставитьпервичный ключ.

Я использовал инкрементное число, чтобы иметь PK, но недавно было замечено, что новые записи могут быть вставлены в любое место в списке, и поэтому инкрементный подход потерпит неудачу.Хеш-коды нельзя использовать, так как они не гарантированно стабильны.

Можно ли как-нибудь сгенерировать стабильный первичный ключ для этих записей, который затем можно отследить по имени ИЛИ любому другому подходу для ссылкивернуться к имени в списке?

Например

В первый день список выглядит следующим образом

  1. Оливер
  2. Джек
  3. Гарри
  4. Джейкоб
  5. Чарли

Предположим, что 963 является ключом (в виде хэш-кода) для Оливера, и этот код имеетбыл сохранен программой XYZ в своем хранилище для обращения к Оливеру.

В другой день новое имя Оскар было добавлено в середине

  1. Оливер
  2. Джек
  3. Оскар
  4. Гарри
  5. Джейкоб
  6. Чарли

Теперь ключ для Оливера - 852, потому что хэш-код не гарантируетсячтобы быть стабильным и последовательность была нарушена, следовательно, программа XYZ не может обратиться к Оливеру с помощью клавиши 963.

...