DynamoDB M-M 邻接列表设计模式 - 删除所有关联?
DynamoDB M-M Adjacency List Design Pattern - Delete all associations?
我正在设计一个 Table 与 GSI 使用邻接列表设计模式 - 这将能够执行所有指定的查询并且一切似乎都运行良好(如果您看到任何其他改进,请提及他们!)。
我遇到的一个问题是如何删除关联。假设用户删除了一个跨多个页面使用的标签(其中页面使用一个或多个标签进行标记)。
我希望做的只是用户 deleteItem - 但它需要整个 PrimaryKey = partitionKey + sortKey(如果存在)并且只删除一个项目。
BatchWrite 的要求基本相同 - 知道每个关联的排序键以便删除它。
例如,如果我需要删除 "tag-article" 我需要删除三行:
- 标签本身 - PK:标签文章 SK:标签文章
- 引用 page-cs-articleId - PK:标签文章 SK:page-cs-articleId
- 引用 page-en-article2 - PK:标签文章 SK:page-en-article2
是否有任何其他方法可以改进 table 设计, 允许我通过指定其 ID 实际删除所有关联(标签)?
非常感谢您的任何提示!
邻接表设计模式要求您查询 GSI and/or table 以找到相关的所有内容。只有当你知道所有的关联后,你才能删除它们。
我正在设计一个 Table 与 GSI 使用邻接列表设计模式 - 这将能够执行所有指定的查询并且一切似乎都运行良好(如果您看到任何其他改进,请提及他们!)。
我遇到的一个问题是如何删除关联。假设用户删除了一个跨多个页面使用的标签(其中页面使用一个或多个标签进行标记)。
我希望做的只是用户 deleteItem - 但它需要整个 PrimaryKey = partitionKey + sortKey(如果存在)并且只删除一个项目。
BatchWrite 的要求基本相同 - 知道每个关联的排序键以便删除它。
例如,如果我需要删除 "tag-article" 我需要删除三行:
- 标签本身 - PK:标签文章 SK:标签文章
- 引用 page-cs-articleId - PK:标签文章 SK:page-cs-articleId
- 引用 page-en-article2 - PK:标签文章 SK:page-en-article2
是否有任何其他方法可以改进 table 设计, 允许我通过指定其 ID 实际删除所有关联(标签)?
非常感谢您的任何提示!
邻接表设计模式要求您查询 GSI and/or table 以找到相关的所有内容。只有当你知道所有的关联后,你才能删除它们。