如何在DynamoDB的n:n邻接表中检索特定类型的所有项目

时间:2018-09-06 19:54:34

标签: nosql amazon-dynamodb

在RDBMS中,我想创建一个与“收藏夹”具有1:n关系的表“目录”。 “集合”的n:n为“标签”,因为一个集合可以有多个标签,一个标签可以属于多个集合。

我要运行的查询是:

1)获取所有目录

2)通过ID获取目录

3)按目录ID获取收藏集

我在AWS上阅读过,可以使用邻接列表设计(因为我的n:n带有“标签”)。所以这是我的表结构:

PK         SK         name    
cat-1      cat-1      Sales Catalog
cat-1      col-1      Sales First Collection
cat-1      col-2      Sales Second Collection
cat-2      cat-2      Finance Catalog 
tag-1      tag-1      Recently Added Tag
col-1      tag-1      (collection, tag relationship)

这里的问题是我必须使用我认为效率低下的扫描才能获取所有“目录”,因为查询的PK必须为“ =”而不是“开头为”。

我唯一想到的是创建另一个属性,例如“ GSI_PK”,并在PK为cat-1和SK为cat-1时添加“ Catalog_1”,在PK为cat-2和SK时添加“ Catalog_2”是猫2。我从来没有真正看到过这样做,所以我不确定这是否可行,如果我想更改ID,还需要一些维护。

有什么想法我将如何实现?

0 个答案:

没有答案