gpt4 book ai didi

amazon-dynamodb - DynamoDb 中标记系统的数据模型

转载 作者:行者123 更新时间:2023-12-04 16:04:54 31 4
gpt4 key购买 nike

如何对 dynamoDB 表建模以构建一个标签系统,其中产品可以分配多个标签,并且我们应该能够过滤具有特定标签或标签集合的产品集,并获取分配给给定标签的所有标签产品?
我考虑过有一张 table :

HASH Key : deviceId

RANGE Key : tag


这允许查询设备的所有标签。
然后我需要一个 GSI:

HASH Key : tag

RANGE Key : deviceId


过滤具有给定标签的所有设备。但这不会让我在不涉及对 GSI 的多个查询和应用程序级别处理的情况下同时按多个标签进行过滤。
DynamoDB 中是否有针对此问题的好的解决方案?

最佳答案

But this won't let me filter by multiple tags at the same time without involving multiple queries to the GSI and processing at application level.



使用过滤条件的解决方法:
  • 为每个设备标签添加一个 bool 属性
  • 使用 GSI 查询多个标签中的第一个标签(就像查询具有给定标签的所有设备一样)
  • 最后使用 filter condition检查剩余的标签,匹配步骤 1 的 bool 属性

  • 不需要多个请求或客户端聚合,多亏了第 2 步,我们避免了进行全表扫描。

    请注意,这个查询仍然是次优的,因为我们最终会扫描那些具有第一个标签但缺少一些剩余标签的设备。

    关于amazon-dynamodb - DynamoDb 中标记系统的数据模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48831207/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com