【问题标题】:Query relations both ways - dynamodb双向查询关系 - dynamodb
【发布时间】:2018-11-12 21:03:45
【问题描述】:

我在 dynamodb 中建模我的 m:n 关系时遇到问题。我研究了文档并找到了一个使用邻接列表模式的示例,这与我的情况非常相似:

现在问题来了:我对我的应用最常见的一个查询是“给我与特定账单 ID 相关的所有发票”

我怎样才能做到这一点,而不必首先查询所有 invoiceId(通过反向索引),然后按其 ID 单独获取所有发票?

【问题讨论】:

    标签: database-design amazon-dynamodb adjacency-list


    【解决方案1】:

    如果您还没有遇到过,https://stackoverflow.com/a/50238513/4985580 会提供有关此模式如何实现的更多详细信息,并使下面的答案更易于理解。

    基本上,您只需使用您的 BillId 作为分区键执行 GSI 查询。然后,对于您找到的每个项目,范围键都会为您提供关联的 InvoiceId。

    它只是一个查询,您可以获得与账单相关联的所有 InvoiceId。

    【讨论】:

    • 部分问题是我想获取一些仅在发票行上的数据。我想我的替代方案是 1)首先通过 GSI 查询 invoiceIds,然后再查询相应的发票并合并结果。或者,2)将发票行所需的数据复制到所有相应的账单?然后我只需要一个查询,但要以维护数据重复为代价,因为发票数据在我的情况下是可变的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 2020-05-03
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    • 2016-12-05
    • 2014-07-23
    相关资源
    最近更新 更多