我正在开发一款应用程序,允许用户阅读图书。我使用 DynamoDB 存储用户阅读的书籍详情,并计划使用存储在 DynamoDB 中的数据来计算统计信息,例如热门图书、作者等。
我的当前模式如下:
user_id | timestamp | book_id | author_id
user_id是分区键,timestamp是排序键。
我的问题在于,使用此模式只能查询单个用户(分区键)阅读的书籍详细信息。这是我其中一个要求。
另一个要求是查询某个日期范围内创建的所有记录,例如:过去7天内创建的记录。使用此模式,我无法运行此查询。
我已经研究了很多其他选项,但没有找到一种方法来创建模式,使我能够运行两个查询。
- 检索单个用户阅读的书籍记录(可以完成)。
- 检索最近x天内所有用户阅读的书籍记录(无法完成)。
我不想运行扫描,因为这样会很昂贵,并且我研究了使用GSI进行时间戳的选项,但它需要我指定哈希键,因此我无法查询在两个日期之间创建的所有记录。