目前,我在DynamoDB中有一个使用此架构的表:
ID:PostID(哈希键)
位置:LocationID(范围键)
标签:字符串列表
现在,我希望能够查询标签列表以及表格中的每个项目,并查找哪些帖子包含这些标签。我怎么做?阅读DynamoDB文档,我认为我将不得不设置另一个表,因为Query无法搜索List / String Set中的特定字符串,但我无法弄清楚如何构造表。
例如,item:
PostID:Guid
位置:someLocationString
标签:[“女王”,“皇室”,“英格兰”]
现在我想查询具有名为“Queen”的标签的项目,并且我希望结果是一组具有标记的项目。 (PostID +位置)
最佳结构是什么?在添加新标签时如何维护表格?
答案 0 :(得分:1)
如果我正确理解了这些要求,您可以使用表格:
哈希:标记
范围:PostId#LocationId
通过这种方式,您可以查询Tag并获取所有对。
保持两个表同步不是最佳的,但这一切都取决于原子性对您来说有多重要。也许看看DynamoDB Transactions,或做一些“CAS”插页。