node.js - DynamoDB 连接多个表
问题描述
我正在开发ERP系统。我将 AWS lambda(Node) 与 Dynamo DB 一起使用。我是发电机的新手。我们正在使用多个表。
我的一个小用例是这样的,我有一张公司表,其中公司的地址将被存储。在该地址字段中有城市、州、国家字段,它们将具有主表的主键(城市、州、国家)。
因此,当我在单个查询中获取公司详细信息时,我还需要获取城市、州和国家/地区。同样过滤,排序应该从主表中完成。
那么任何人都可以帮我解决这个问题,有什么方法可以实现吗?并且如果可能还提供一些node js查询代码供参考。
如果可能,请提供一些官方文档,以便我可以查看。
谢谢你的帮助 :)
解决方案
DynamoDB 是一项了不起的技术。但是,它与 SQL 数据库完全不同。因此,您需要以不同于使用 SQL 数据库的方式处理整个过程。
整本书都是关于这个主题的,所以我不会在这里尝试涵盖所有差异。但是,我将传递一些指示,以使您朝着正确的方向前进。
- 单表设计被认为是 DynamoDB 中的最佳实践。拥有多个表不一定是反模式,但要花一些时间调查为什么会这样。一个好的起点:DynamoDB 没有 SQL 连接操作!
- DynamoDB Book是关于这个主题的最佳书籍,毫无疑问。花几个小时阅读这本书将大大减少学习曲线。
- 观看 AWS Re:Invent 关于 DynamoDB 的演讲。 2019 年的这次演讲是一个很好的起点。(本演讲来自 DynamoDB Book 的作者 Alex DeBrie)。
- 使用 NoSQL 数据库时,SQL 数据库的规则不适用。换句话说,在使用 NoSQL 时,忘掉你所知道的关于 SQL 数据库的一切。这是一种范式转变,我发现最好抛开任何关于数据库的先入为主的观念,以开放的心态处理这个话题。说起来容易做起来难,但无论如何这是我的建议:)
- DynamoDB 要求您构建数据模型以匹配应用程序的用例,也就是您的应用程序“访问模式”。在考虑如何访问数据之前将数据放入 DynamoDB 是错误的方法。相反,问问自己“我的应用程序需要通过哪些方式获取数据?” 并相应地设计您的数据模型。
NoSQL 数据建模有一个陡峭的学习曲线,但如果你做对了,那就太棒了!祝你好运!
推荐阅读
- c# - C# Foreach 对于 webbrowser 控件来说太快了
- macos - 在文本文件中查找特定文本,如果不存在则添加文本
- python - Python列表格式字符串,列表中包含列表项
- r - 如何在两列中排除具有特定比例 NA 的受试者
- flutter - 当我们在 ChangeNotifier 中使用 notifyListeners 时?
- prometheus - 如何映射(连接)两个指标的标签
- python - 替换数据框列的值
- jupyter-notebook - 远程 Jupyter Notebook/Jupyter Lab 在没有 ssh 隧道的情况下无法连接到内核
- python - 如何更改芹菜中的键名
- spring-batch - Spring Batch Integration 消费 RabbitMq 消息