我在
id
上添加了主键,并在type
上添加了主排序键,然后又在id
和data
上添加了另一个全局索引。我又添加了一个全局索引,这次是在id
和type
上,但我认为这是多余的。以下是我的进展情况。
id(Partition key) type(Sort Key) target data
------------- ---------- ------ ------
1 post 1 cool post
tag tag tag n/a
1 tag tag orange
---------------------------------------------
---- inserting another tag will overwrite ---
---------------------------------------------
1 tag tag green
我正在参考这个很棒的讲座 https://www.youtube.com/watch?v=jzeKPKpucS0 和这些不太好的文档 https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-adjacency-graphs.html
我的问题在于,如果我尝试添加另一个带有id
“1”和type
“tag”的标记,它将覆盖现有标记,因为它会具有相同的复合键。我错过了什么?似乎建议是使主键和排序键成为id
和type
。我的类型应该更像“tag#orange”吗?在这种情况下,我可以在target
上放置一个全局索引,并在类型上放置一个排序键。这样,我就可以通过查询目标=“tag”并以“tag”开头的类型获取所有带有特定标记的帖子。
只是想寻求一些关于使用Dynamo处理这种邻接列表数据的建议,因为它似乎非常有趣。谢谢!
{"id": 1, "type": "tag", "data": "this is a tag"}
还是{"id": "this is a tag", "type": "tag", "data": "this is a tag"}
? - Renato Byrro