DynamoDB M-M邻接列表设计模式-删除所有关联吗?

时间:2018-07-10 09:17:23

标签: amazon-dynamodb adjacency-list

我正在使用“邻接表设计”模式设计具有GSI的表-该表将能够执行所有指定的查询,并且看起来运行良好(如果您看到任何其他改进,请提及它们!)。

Table Design

我遇到的一个问题是如何删除关联。假设用户删除了一个标签,该标签在多个页面中使用(其中的页面被一个或多个标签标记)。

我希望做的只是用户deleteItem-但它需要整个PrimaryKey = partitionKey + sortKey(如果存在),并且只删除一个项目。

BatchWrite基本上需要相同的知识-知道每个关联的排序键才能删除它。

例如,如果我需要删除“标签文章”,则需要删除三行:

  1. 标签本身-PK:标签文章SK:标签文章
  2. 对page-cs-articleId的引用-PK:标签-文章SK:page-cs-articleId
  3. 参考page-en-article2-PK:标签-文章SK:page-en-article2

还有其他方法可以改进表格设计吗?是否允许我通过指定ID来删除所有关联(标签)?

非常感谢您的提示!

1 个答案:

答案 0 :(得分:0)

邻接表设计模式要求您查询GSI和/或表以查找相关的所有内容。只有知道所有关联后,才能删除它们。