如何建模dynamoDB表以构建标签系统,其中产品可以分配多个标签,我们应该能够过滤具有特定标签或标签集合的产品集,并获取分配的所有标签给定产品?
我考虑过一张桌子:
HASH键:deviceId
RANGE键:标签
这允许查询设备的所有标签。
然后我需要一个GSI:
HASH键:标记
RANGE键:deviceId
过滤具有给定标记的所有设备。但这不允许我同时过滤多个标签,而不涉及GSI的多个查询和应用程序级别的处理。
DynamoDB中是否有解决此问题的好方法?
答案 0 :(得分:0)
但这不会让我同时过滤多个标签,而不会涉及对GSI的多次查询和在应用程序级别的处理。
使用过滤条件的解决方法:
不需要多个请求或客户端聚合,由于有了第2步,我们避免进行全表扫描。
请注意,此查询在我们最终扫描具有第一个标签但缺少某些其余标签的设备的意义上仍不是最佳选择。