【问题标题】:DynamoDB joins with multiple tablesDynamoDB 连接多个表
【发布时间】:2021-07-15 22:58:58
【问题描述】:

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

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

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

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

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

感谢您的帮助:)

【问题讨论】:

  • 您正在尝试将关系数据库的概念应用于 NoSQL 数据库。如果你不知道自己在做什么,你肯定会感到非常痛苦。也许看看AWS Aurora。它是一个无服务器的关系数据库。你可能会得到更好的服务。

标签: node.js amazon-web-services aws-lambda amazon-dynamodb dynamodb-queries


【解决方案1】:

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

关于这个主题已经写了整本书,所以我不会在这里尝试涵盖所有差异。不过,我会提供一些建议,让您找到正确的方向。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-28
    • 2016-03-11
    • 2016-08-13
    • 1970-01-01
    • 2018-07-03
    • 2020-10-11
    • 2012-11-22
    • 2015-02-05
    相关资源
    最近更新 更多