Сортировка данных в DynamoDB по изменяющемуся значению - PullRequest
0 голосов
/ 02 декабря 2019

У меня есть структура таблицы, состоящая из городов и комментариев. Мне нужно получить все комментарии, связанные с городом. Я сделал своим первичным ключом для комментариев название города. Теперь, когда я запрашиваю свою таблицу, я могу получить все комментарии, связанные с городом, но они нужны мне в порядке голосов за этот комментарий. ценность голосов постоянно меняется. Я рассмотрел добавление заказа в свой запрос или добавление голоса в качестве ключа диапазона, а удаление - повторное добавление записанных голосов при каждом изменении голосов. Эти решения не кажутся такими эффективными, и было интересно, есть ли лучший способ сделать это?

1 Ответ

1 голос
/ 02 декабря 2019

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

Использование LSI проще, чем кодирование дополнительного удаления и добавления, и более эффективно в смысле меньшей сетиактивность и работа с клиентами - но не может быть значительно дешевле в счетах Amazon, потому что DynamoDB взимает дополнительную плату за эту работу LSI.

...