2016-08-08 4 views
0

Я моделирую простое приложение, и я хотел бы использовать DynamoDB в качестве своего хранилища. Мне нужно сохранить весь заказ с веб-сайта электронной торговли. Можно запросить использование order_id и электронной почты пользователя.Дизайн схемы DynamoDB - модель заказа

Опираясь на документацию dynamodb, я считаю, что лучшим подходом является пользователь order_id (большинство моих запросов будут сделаны по этому индексу) в качестве моего первичного ключа (ключа раздела).

А как насчет электронной почты? Мне нужен вторичный индекс, но я немного потерян. Каков наилучший подход?

+0

что вы имеете в виду , электронная почта пользователя является хорошим вторичным индексом (если вам нужно получить определенных пользователей, заказавших order_id) –

ответ

0

Похоже Global Secondary Index на атрибуте email бы решить эту проблему:

  • , когда вам нужно для поиска по order_id, вы используете GetItem операцию и указать, что order_id в качестве первичного ключа

  • , когда вам нужно для поиска по email, вы используете Query API на GSI и указать email в качестве ключа секционирования.

GSI имеет независимые единицы мощности чтения - так как вы сказали, что вы будете использовать order_id большую часть времени, вы могли бы предоставление более РКО к главному столу, чем GSI.

Ссылка: "Что такое лучший подход"

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