Я храню список имен в базе данных.В списке нет первичного ключа для каждой записи.Эти имена затем используются другой программой и поэтому требуют, чтобы первичный ключ использовался в качестве внешнего ключа.
Список принадлежит третьей стороне, которая находится вне нашего влияния, поэтому мы не можем заставить их предоставитьпервичный ключ.
Я использовал инкрементное число, чтобы иметь PK, но недавно было замечено, что новые записи могут быть вставлены в любое место в списке, и поэтому инкрементный подход потерпит неудачу.Хеш-коды нельзя использовать, так как они не гарантированно стабильны.
Можно ли как-нибудь сгенерировать стабильный первичный ключ для этих записей, который затем можно отследить по имени ИЛИ любому другому подходу для ссылкивернуться к имени в списке?
Например
В первый день список выглядит следующим образом
- Оливер
- Джек
- Гарри
- Джейкоб
- Чарли
Предположим, что 963 является ключом (в виде хэш-кода) для Оливера, и этот код имеетбыл сохранен программой XYZ в своем хранилище для обращения к Оливеру.
В другой день новое имя Оскар было добавлено в середине
- Оливер
- Джек
- Оскар
- Гарри
- Джейкоб
- Чарли
Теперь ключ для Оливера - 852, потому что хэш-код не гарантируетсячтобы быть стабильным и последовательность была нарушена, следовательно, программа XYZ не может обратиться к Оливеру с помощью клавиши 963.