2016-05-09 4 views
1

Скажите, что у меня есть таблица order, в которой хранятся заказы пользователей. Он имеет следующую схему:Должны ли глобальные вторичные индексы в DynamoDB быть уникальными?

id (string, unique primary key)

userId (string, id of the user who made the user

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

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

Я бы предпочел не добавлять ключ диапазона, поэтому я могу просто использовать userId, чтобы получить все заказы, сделанные конкретным пользователем.

Любые мысли?

ответ

1

Этот сценарий будет одобрен, глобальный вторичный индекс может быть не уникальным. единственный недостаток (что я могу думать о) в том, что если у вас есть пользователь «Мег», с множеством заказов (при записи), он может обвинить пропускную ошибку емкости ..

хорошая ссылка здесь:

http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GuidelinesForTables.html

+0

Я мог бы добавить ключ диапазона в значение даты, но похоже, что его больше невозможно запросить только с помощью идентификатора пользователя, он всегда необходим для передачи даты. Может быть, мне нужен LSI на дату? –

+0

Адрес: Где: date? –

+0

Не упоминается здесь, но его номер столбца, который имеет миллисекунды даты. –

Смежные вопросы