aws-lambda - AWS AppSync 获取另一个表的计数(例如计算帖子的点赞数)
问题描述
我有以下 AWS AppSync/Amplify 模型
type Event @model {
id: ID!
name: String!
ticketsSold: Int!
moneySum: Int!
}
该ticketsSold
属性必须反映orders
with的计数eventId = X
。moneySum
必须代表所有订单票价的总和eventId = X
。
有 2 个选项(或更多?)需要考虑:
- 对于每个
putItem
(createOrder 突变),event
使用新的计数/总和更新正确的行 eventId = X
通过 AWS Lambda 解析器查询/扫描所有订单
每个选项都有一些优点和缺点。使用选项 1,如果多人同时订购(交易?),可能会出现不同步的情况。使用选项 2 的缺点是扫描非常昂贵且速度慢......
这些事件显示在 ReactJS 应用程序的主页上,ticketsSold
并moneySum
显示为预览和详细信息,因此它将被“大量”获取。
建议?非常感谢!
解决方案
我会使用选项 1,使用您的票证数据库中的流进入一个 lambda,该 lambda 使用聚合信息更新某些表。这将比无休止的扫描更快、更干净。我使用它来汇总用户的 lambda 使用情况,将 lambda 运行时记录到可以立即查询总数的表中。效果很好。
推荐阅读
- javascript - 删除字母和特殊字符
- php - WordPress/WooCommerce - 自定义类别批量编辑的钩子是什么?
- python - 是否有可能获得中间层的输出?
- typescript - 如何从打字稿中的函数类型声明创建实例?
- reactjs - 如何向 React Table IndeterminateCheckbox 方法添加类型
- python - python从两个列表创建字典
- python - 如何组织三元组搜索,以便通过搜索多对多关系,我们得到一个以单数形式与之关联的对象?
- json - 在 Kotlin 中解析 json
- lint - ruby linting 与 vscode 远程 + docker
- r - 使用 robComputation 进行插补会给出错误消息