Какова лучшая стратегия для обеспечения того, чтобы Dynamo Db LSI также был уникальным? - PullRequest
0 голосов
/ 23 марта 2020

По умолчанию LSI на DynamodB может иметь повторяющиеся значения.

Пример:

  1. Идентификатор компании - Ха sh Ключ
  2. Электронная почта пользователя - Ключ диапазона
  3. Плагин пользователя - ключ диапазона LSI

1 & 2 будет уникальным, поскольку его первичный ключ.

3 может иметь дубликаты, поскольку уникальность не гарантируется в LSI

Какую лучшую стратегию люди использовали для обеспечения уникальности LSI? Ниже приведены те, которые я рассмотрел.

Стратегии для использования: 1) Лучшая стратегия: использовать транзакции Dynamo, чтобы записать уникальные ключи в первичные ключи / ключи сортировки той же / другой таблицы и использовать условные выражения для проверки если ключ присутствует перед вставкой / обновлением. Например, в этом случае добавим ключ UserSlug # SomeValue к ключу диапазона. Условное выражение проверит, существует ли оно https://aws.amazon.com/blogs/database/simulating-amazon-dynamodb-unique-constraints-using-transactions/

2) Fail Strategy: проверьте, существует ли ключ перед вставкой. Легко потерпит неудачу, если операция выполнит одновременную вставку / обновление. В итоге получатся дубликаты

3) Простая стратегия: выполните обновление / вставку и подсчитайте ключи. Если его больше 1, удалите строку. Таким образом, если запущены одновременные операции, то оба не удастся.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...