Amazon dynamodb Dynamodb按照无sql设计查询所有记录

Amazon dynamodb Dynamodb按照无sql设计查询所有记录,amazon-dynamodb,dynamodb-queries,Amazon Dynamodb,Dynamodb Queries,我知道用dynamodb编写查询,但我还是新手。现在是一个项目,而不是 除了简单地创建一个带有分区键和排序键的表之外,我还设计了 表的无sql数据模型数据结构。因此,我实施了 列出/添加/更新/删除dynamodb查询 我的问题是如何查询所有记录,例如查询所有产品。对于我的应用程序的管理面板,我需要为每种类型的实体显示一种实体类型的所有记录 我知道查询所有记录基本上都是在以前的 然而,我张贴这个问题,这样做没有扫描操作;如何考虑适当/完整的nosql设计。具体地说,我之所以这样做是因为我目前正在

我知道用dynamodb编写查询,但我还是新手。现在是一个项目,而不是 除了简单地创建一个带有分区键和排序键的表之外,我还设计了 表的无sql数据模型数据结构。因此,我实施了 列出/添加/更新/删除dynamodb查询

我的问题是如何查询所有记录,例如查询所有产品。对于我的应用程序的管理面板,我需要为每种类型的实体显示一种实体类型的所有记录

我知道查询所有记录基本上都是在以前的

然而,我张贴这个问题,这样做没有扫描操作;如何考虑适当/完整的nosql设计。具体地说,我之所以这样做是因为我目前正在使用分区键的静态值

我遵循了单表设计(在任何情况下,建议大多数设计良好的应用程序只使用一个表)。作为此链接的一部分,建议在此链接中对排序键使用静态值,该值将成为(反向查找)索引的主键。例如,允许查询所有“产品”

我的申请,将有“类别”。它还将创建“调查”,每个调查都属于一个类别。对于管理面板,我需要显示所有类别和所有调查

我目前所做的:
一) 表格设计:
表:tbl_调查
分区键:tbl_pk_surv
排序键:tbl_sk_surv
一个“数据”属性:数据属性

我用tbl_sk_surv作为分区键,data_attr作为Sortkey创建了一个GSI

二) 例如,对于类别,类别记录如下所示:

tbl|u pk|u surv | tbl|u sk|u surv |数据|属性|类别|名称|状态
Cat-1VqNAF3Vi1 |管理类| 1565673999 | Cat1 | 1
Cat-QUTQHQwd42 |行政类| 1565950613 | Cat2 | 1

我正在用“ADMIN_CATEGORY”作为GSI哈希键(tbl_sk_surv)的值查询GSI

请让我知道如何才能做到这一点。一般来说,请提供有关nosql数据建模的指导

我遵循了以下nosql设计文档










更新: 通过进一步的搜索,我发现下面的问题与我的问题相似。但我的要求更具体,因为我使用的是GSI。无论哪种方式,请引导:

您的设计看起来只是正确的

据我所知

  • 单桌设计适合您
    • 您可以将category和survey都作为hash_键的值
    • GSI将允许您根据类型(类别或调查)进行查询

如果你能详细列出你所有的用例和数据,它将使你能够更好地回答同样的问题

你的设计看起来只是正确的

据我所知

  • 单桌设计适合您
    • 您可以将category和survey都作为hash_键的值
    • GSI将允许您根据类型(类别或调查)进行查询

如果你能详细列出你的所有用例和数据,它将能够更好地回答同样的问题。我想,到今天,从你的问题开始5个月,你已经是一名dynamodb建模专家了:)我将为未来的访问者提供我的观点,以寻找相同的问题,并作为我自己的练习

1-第一步(当然,在获得所有用例之后)是设计ERM,这将非常有用。 2-列出您的所有访问模式,在对数据库建模之前,首先了解您希望从数据中获得什么是非常重要的。 3-然后你可以决定你的物品和GSI的PK和SK(如果需要的话)

您可以说SK是您的GSI PK,并按如下方式查询GSI:


GSI的“PK=ADMIN_CATEGORY”(PK=ADMIN_CATEGORY)我想今天,从你的问题开始5个月后,你已经是dynamodb建模专家了:)我将为未来的访问者提供我的观点,以寻求相同的问题,并作为我自己的练习

1-第一步(当然,在获得所有用例之后)是设计ERM,这将非常有用。 2-列出您的所有访问模式,在对数据库建模之前,首先了解您希望从数据中获得什么是非常重要的。 3-然后你可以决定你的物品和GSI的PK和SK(如果需要的话)

您可以说SK是您的GSI PK,并按如下方式查询GSI:

来自GSI的“PK=管理类别”