因此,在DynamoDB中,对多对多关系的推荐方法是使用Adjacency List Pattern。
现在,它非常适合需要读取数据的情况,因为您可以通过一个请求轻松读取多个项目。
但是,如果我需要更新/删除数据怎么办?这些操作针对的是特定项目而不是查询结果。
因此,如果我有成千上万的复制数据来促进GET操作,我将如何更新所有这些副本?
我想到的最简单的方法是不复制数据,而只存储一个不变的ID,但这实际上是在模拟关系数据库,并且将至少接收2个请求。
答案 0 :(得分:1)
简单答案:您只需更新重复项即可:) AFAIK冗余数据在NoSQL数据库中是首选,并且没有更新数据的捷径。
当数据的读/写比很大程度上位于读取端时,这当然是最好的。而且在大多数日常应用中都是这种情况(我的直觉可能是错误的),因此与查询相比,数据更新很少见。
DynamoDB有一些实用程序,可能在此处适用。两者都有缺点
我的理解是,应谨慎使用这两种方法,因为它们可能会导致性能瓶颈。单独更新每个项目的简单方法通常就可以了。而且由于数据是冗余的,因此您可以使用异步操作并行进行多个更新。