gpt4 book ai didi

amazon-dynamodb - DynamoDB 邻接列表模式

转载 作者:行者123 更新时间:2023-12-04 15:45:18 29 4
gpt4 key购买 nike

我试图更好地理解在 AWS DynamoDB 中使用邻接列表模式进行多对多 (m:n) 关系设计。

在此处查看 AWS 文档:https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-adjacency-graphs.html我们有一个带有 m:n 关系的 Invoice 和 Bill 实体的示例。

enter image description here

我了解我可以通过读取单个分区来获取与特定发票相关的所有账单的详细信息。例如,我可以查询 Invoice-92551 并根据分区中的附加项目了解与其关联的 2 个账单的一些属性。

我的问题是我必须做什么才能获得这 2 个账单的完整账单属性。这是否需要使用我从发票分区派生的 ID 进行 2 个额外的查询,还是我在这里缺少其他一些模式?

更多详情
在屏幕截图中引用 Bill 项目的 2 种不同描述:

  • 发票分区中的账单项目:“此发票中此账单的属性”
  • 自己分区中的账单项目:“此账单的更多属性”

  • 这是否意味着我的 Invoice 分区应该包含我想通过最少查询访问的任何 Bill 属性?我最初认为 Bill 分区将包含我想要的大部分内容,但如果我想通过 Invoice 获取它们,这并没有多大意义。

    最佳答案

    不,没有其他查询 - 除非您只询问(“项目”)某些属性,否则您的查询将检索账单的所有属性及其 key 。

    DynamoDB 将每个分区一起存储在单个节点上,因此获取整个分区非常高效。该分区由其“分区键”(您的发票编号)定义。该分区包含一堆“项目”(您的账单),每个项目都有自己的“排序键”(您的账单 ID)和任意数量的“属性”。当 DynamoDB 读取分区时,它会按顺序读取这些项目及其所有属性,并且可以返回所有这些,除非您特别要求它不要这样做。请注意,即使您只要求它返回这些属性的一个子集(“投影”),Amazon 仍然需要从磁盘读取它们,您仍然需要为此 I/O 付费。

    关于amazon-dynamodb - DynamoDB 邻接列表模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56042760/

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