首页 > 解决方案 > DynamoDB 连接多个表

问题描述

我正在开发ERP系统。我将 AWS lambda(Node) 与 Dynamo DB 一起使用。我是发电机的新手。我们正在使用多个表

我的一个小用例是这样的,我有一张公司表,其中公司的地址将被存储。在该地址字段中有城市、州、国家字段,它们将具有主表的主键(城市、州、国家)。

因此,当我在单个查询中获取公司详细信息时,我还需要获取城市、州和国家/地区。同样过滤,排序应该从主表中完成。

那么任何人都可以帮我解决这个问题,有什么方法可以实现吗?并且如果可能还提供一些node js查询代码供参考。

如果可能,请提供一些官方文档,以便我可以查看。

谢谢你的帮助 :)

标签: node.jsamazon-web-servicesaws-lambdaamazon-dynamodbdynamodb-queries

解决方案


DynamoDB 是一项了不起的技术。但是,它与 SQL 数据库完全不同。因此,您需要以不同于使用 SQL 数据库的方式处理整个过程。

整本书都是关于这个主题的,所以我不会在这里尝试涵盖所有差异。但是,我将传递一些指示,以使您朝着正确的方向前进。

  • 单表设计被认为是 DynamoDB 中的最佳实践。拥有多个表不一定是反模式,但要花一些时间调查为什么会这样。一个好的起点:DynamoDB 没有 SQL 连接操作!
  • DynamoDB Book是关于这个主题的最佳书籍,毫无疑问。花几个小时阅读这本书将大大减少学习曲线。
  • 观看 AWS Re:Invent 关于 DynamoDB 的演讲。 2019 年的这次演讲是一个很好的起点。(本演讲来自 DynamoDB Book 的作者 Alex DeBrie)。
  • 使用 NoSQL 数据库时,SQL 数据库的规则不适用。换句话说,在使用 NoSQL 时,忘掉你所知道的关于 SQL 数据库的一切。这是一种范式转变,我发现最好抛开任何关于数据库的先入为主的观念,以开放的心态处理这个话题。说起来容易做起来难,但无论如何这是我的建议:)
  • DynamoDB 要求您构建数据模型以匹配应用程序的用例,也就是您的应用程序“访问模式”。在考虑如何访问数据之前将数据放入 DynamoDB 是错误的方法。相反,问问自己“我的应用程序需要通过哪些方式获取数据?” 并相应地设计您的数据模型。

NoSQL 数据建模有一个陡峭的学习曲线,但如果你做对了,那就太棒了!祝你好运!


推荐阅读