DynamoDB-模型与其自身嵌入的多对多关系

时间:2019-05-03 18:01:50

标签: amazon-dynamodb dynamodb-queries

我很难建模自己所处的场景。

嗯,我能够对解决方案进行建模,但最终却涉及到2个GSI

这里的背景是我有项目,每个项目都可以有任务

每个任务可以与另一个任务有关系,例如孩子,受抚养人,父母。

最初,我是通过以下方式建模的:

enter image description here

如您所见,project_1有两个任务。

而task_1取决于task_2

使用GSI 1的原因是,如果我只有task_2 id,我可以进行反向搜索以查看task_1依赖于它。

但是,这还不够,它引入了一个新问题:

如果要删除项目以及与之相关的所有数据,该如何删除任务关系对象?我可以,但是会涉及一些非常昂贵的扫描。

所以我添加了第三个GSI:

enter image description here

此新的GSI用于将任务关系的“ belongs_to_project”属性投影为主键,因此我可以通过3个查询轻松删除所有Project信息。

我可以更有效地做到这一点吗?使用更少的查询?更少的GSI?

0 个答案:

没有答案