【发布时间】:2021-11-22 18:03:36
【问题描述】:
背景:我有关系数据库背景,从来没有为 DynamoDB 构建过任何不只是用于快速写入和很少读取的东西。我正在尝试通过将我的一个帮助台应用程序从 MySQL 迁移到 DynamoDB 来学习 DynamoDB 模式。
从数据存储的角度来看,该应用程序是一个相当简单的应用程序。用户提交请求,该请求会生成 1 个或多个票证。
设置:我有一些屏幕,人们可以在其中看到初始请求以及该请求的票证和搜索视图,允许支持查询票证的一堆属性(用户的姓氏、票证的状态、工单用例、用户电话号码、用户部门)。 SQL 数据库中的这种设计非常简单,但在 Dynamo 中,我真的被抛出一个关于如何构造主/排序键和二级索引的循环(如果需要)。
我为请求创建了一个集合,为工单创建了一个集合。各个请求有一组属于它的票证 ID。票项具有存储请求 ID 的属性,以便我可以通过这种方式进行搜索。但让我感到困惑的是,如何在不进行全面扫描的情况下结合对工单/请求属性的搜索?
我阅读了有关复合键的信息,并且可能创建了一个类似于:## 的复合排序键,这样我就可以直接搜索每个字段,而无需知道主键(票证 ID)。
问题:如何设计需要查询大量不同属性值而不依赖主键的 dynamo 集合/表?
【问题讨论】:
标签: amazon-dynamodb