Вам необходим GSI: глобальный вторичный индекс .В GSI нет ограничений на один элемент на ключ раздела.Вот что вы можете сделать:
Измените основную таблицу так, чтобы первичный ключ имел уникальное значение для каждого запроса пользователя.Каждый раз, когда вам нужно сохранить запрос пользователя, вы генерируете новый первичный ключ, как этот (просто пример): randomInteger[1:10000] + timestamp + userID
.Этого должно быть достаточно, чтобы два запроса не имели один и тот же ключ раздела.
С каждым из этих элементов также сохраняйте userID как отдельный атрибут (может быть вашим ключом сортировки или обычным атрибутом).Конечно, также сохраните все другие необходимые вам атрибуты.
В вашем GSI установите userID в качестве первичного ключа.Когда вам нужны все элементы от данного пользователя, просто запросите идентификатор пользователя в GSI (не в основной таблице), и вы получите все из них.