Динамо первичный ключ раздела - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть динамо-таблица для страницы новостей.

Она состоит из

guid, newsDatetime, newsText, language

Что было бы наилучшей идеей для структурированиятаблица?

Большинство пользователей увидят первые пять текстовых элементов, упорядоченных new newsDatetime.

Вы можете переключать язык, но у каждого языка есть разные новости.Имеет ли смысл создавать совершенно новые DynamoDB и переключать БД на язык.(что будет очень редко, если когда-либо случится)

Гид будет случайным образом распределен по разделам.Но он хотел бы использовать дату и время в качестве ключа раздела из-за упорядочения по дате и времени.Имеет ли это смысл?

1 Ответ

0 голосов
/ 25 сентября 2018

Я думаю, что ваша архитектура в порядке.Чтобы решить проблему с фильтрацией по языку, я бы предложил создать новый атрибут, объединяющий language и newsDatetime.

. Установите для таблицы значение guid в качестве ключа раздела и newsDatetime в качествесортировать ключ.Затем создайте вторичный индекс, имеющий guid в качестве ключа разделения и объединенный атрибут в качестве ключа сортировки.

Когда вам нужно получить новости независимо от языка, отсканируйте таблицу в порядке убывания, используя команду sort-ключ.Когда вам нужно отфильтровать язык, используйте сканирование вторичного индекса в порядке убывания, но также используйте условие фильтра startswith="{language}".

...