Как запросить строку DynamoDB с помощью второго ключа

#amazon-dynamodb #dynamodb-queries

#amazon-dynamodb #dynamodb-запросы

Вопрос:

Я хочу сохранить пользователя в DynamoDB. У него есть идентификатор, адрес электронной почты и хэш пароля.

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

Как мне создать эту таблицу и запросить / получить объект пользователя только с идентификатором, а затем снова только с электронной почтой?

Комментарии:

1. Создайте глобальный вторичный индекс с электронной почтой в качестве PK

Ответ №1:

Вы описываете два шаблона доступа

  1. Запрос пользователя по электронной почте
  2. Выборка пользователя по идентификатору

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