【发布时间】:2017-11-18 11:59:28
【问题描述】:
我正在开发一个允许用户阅读书籍的应用程序。我正在使用 DynamoDB 存储用户阅读的书籍的详细信息,并且我计划使用存储在 DynamoDB 中的数据来计算统计数据,例如热门书籍、作者等。
我当前的架构如下所示:
user_id | timestamp | book_id | author_id
user_id 是分区键,timestamp 是排序键。
我遇到的问题是,使用此架构我只能查询 单个用户(分区键)已阅读的书籍的详细信息。这是对我的要求之一。
另一个要求是查询在某个日期范围内创建的所有记录,例如:过去7天创建的记录。使用此架构,我无法运行此查询。
我已经研究了很多其他选项,但还没有找到一种方法来创建允许我运行两个查询的架构。
- 检索单个用户阅读的书籍记录(可以)。
- 检索所有用户在过去 x 天阅读的书籍记录(无法做到)。
我不想运行扫描,因为它会很昂贵,我研究了使用 GSI 作为时间戳的选项,但它需要我指定一个哈希键,因此我无法查询在 2 之间创建的所有记录日期。
【问题讨论】:
-
您是否设法找到了一个好的解决方案。因为我有完全相同的情况。除了扫描之外,您还发现了什么?
标签: amazon-dynamodb