У меня есть пользовательский объект с этими атрибутами.DynamoDB избегать дублирования не-ключей атрибутов
id
(ключ), name
и email
И я пытаюсь убедиться, что эти атрибуты являются уникальными в БД.
Как предотвратить операцию put
/create
/save
от успеха, в случае какого-либо из неключевых атрибутов, email
и name
, уже существует в БД?
У меня есть таблица, tblUsers
с одним ключевым атрибутом, являющимся id
. У меня тогда есть два глобально вторичных индекса, каждый из которых также имеет один ключевой атрибут, являющийся email
для первой индексной таблицы и name
для второго.
Я использую инфраструктуру идентификации microsoft .net, которая сама проверяет наличие существующих пользователей с заданным именем или электронной почтой, прежде чем создавать пользователя.
Проблема, которую я вижу, это задержка между проверкой существующих пользователей и созданием нового. Существует никакой безопасности, что несколько потоков обычно не создают двух пользователей с тем же именем или электронной почтой.
Havent подумал о замках - я думаю, это мой лучший вариант - блокировка -> проверка на дублирование -> создание -> выпуск – Tsanas
да, я использую его так же :) –