我正在寻找如何在dynamodb中建立朋友关系的模型。
联系人表格:
(2-way)
User1 -PK,
User2 -RK
AND
User2 - PK
User1 - RK
这种方法的问题是:
- 加倍数据。
- 在dynamoDB中没有交易,所以如果一个项目变得很糟糕而另一个项目不会导致问题。
- 如果我想得到所有user1的联系人,我必须做N次读取(例如,1000个读取操作的1000个联系人... YIKES!这可以快速加起来)
接下来的想法是在“用户项目”中创建一个属性,该属性将是一个字符串集,并包含所有用户联系人。这里的问题又一次,因为关系是相互的,我需要更新两个用户项,并且因为没有事务,所以这可能会导致问题。 然后会有他的朋友数限制(dynamodb中的项目大小限制)。
有没有比我展示的两种方式更好的方法来存储在dynamodb中的联系人?