【发布时间】:2019-12-22 16:19:51
【问题描述】:
我知道在 dynamodb 中编写查询,但我还是新手。现在对于一个项目,而不是 不是简单地创建一个带有分区键和排序键的表,我设计了 我的表的无 sql 数据模型数据结构。因此,我已经实施 列出/添加/更新/删除 dynamodb 查询。
我的问题是如何查询所有记录,例如查询所有产品。 对于我的应用程序的管理面板,我需要显示一个实体类型的所有记录,针对每种类型的实体。
我知道查询所有记录之前基本上已经在Retrieve all items from DynamoDB using query?问过。
但是,我发布了这个没有扫描操作的问题;如何根据或根据考虑适当/完整的 nosql 设计来做。 具体来说,我之所以问,是因为我目前正在为分区键使用静态值。
我遵循单表设计(无论如何,建议大多数设计良好的应用程序只使用 1 个表)。作为其中的一部分,在此链接https://www.trek10.com/blog/dynamodb-single-table-relational-modeling/,建议使用静态值作为排序键,它将成为(反向查找)索引的主键。从而允许查询所有“产品”,例如。
我的应用程序将具有“类别”。它还将创建“调查”,每个调查都属于一个类别。对于管理面板,我需要显示所有类别以及所有调查。
我目前做了什么:
一)表格设计:
表:tbl_surveys
分区键:tbl_pk_surv
排序键:tbl_sk_surv
一个“数据”属性:data_attr
我创建了一个 GSI,其中 tbl_sk_surv 作为 Partition Key,data_attr 作为 Sortkey。
II) 例如,对于类别,类别记录如下所示:
tbl_pk_surv | tbl_sk_surv | data_attr | cat_name | status
Cat-1VqNAF3Vi1 | ADMIN_CATEGORY | 1565673999 | Cat1 | 1
Cat-QUTQHQwd42 | ADMIN_CATEGORY | 1565950613 | Cat2 | 1
我正在使用“ADMIN_CATEGORY”作为 GSI 哈希键 (tbl_sk_surv) 的值查询 GSI。
请让我知道还有什么方法可以做到这一点。一般来说,请提供有关 nosql 数据建模的指导。
我已遵循以下有关 nosql 设计的文档
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-general-nosql-design.html
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-modeling-nosql.html
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-modeling-nosql-B.html
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-adjacency-graphs.html#bp-adjacency-lists
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-relational-modeling.html
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-gsi-overloading.html
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-partition-key-design.html
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-sort-keys.html
https://www.trek10.com/blog/dynamodb-single-table-relational-modeling/
https://aws.amazon.com/blogs/database/using-sort-keys-to-organize-data-in-amazon-dynamodb/
更新:
在更多搜索中,我发现以下问题与我的相似。但我问得更具体,因为我使用的是 GSI。无论哪种方式,请指导:
How to design key schema to have only one DynamoDB table per application?
【问题讨论】:
标签: amazon-dynamodb dynamodb-queries