Member 11971483 Ответов: 1

Как избежать дублирования записей в системе?


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

*другой вариант, кроме уникального ключа???*

Что я уже пробовал:

id не сохраняется как уникальный, так что должна быть другая альтернатива для этого.

1 Ответов

Рейтинг:
1

OriginalGriff

Вот для чего нужны IDENTITY и UNIQUEIDENTIFIER: первое-это восходящее целое число, поддерживаемое SQL, поэтому оно уникально для каждой таблицы. Второй-это GUID, поэтому он уникален для всех таблиц (и систем)*
Важно вообще не пытаться "предварительно распределить" значения идентификаторов - они должны быть сгенерированы только при выполнении операции вставки (за исключением значений GUID, которые могут быть сгенерированы кодом презентации и затем вставлены в несколько таблиц).
Именно "предварительная генерация" вызывает большинство проблем, а не само фактическое значение идентификатора.


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