gpt4 book ai didi

mysql - 如何在 "SQL Transactions"中实现 "Clean Architecture"?

转载 作者:行者123 更新时间:2023-12-03 22:34:54 25 4
gpt4 key购买 nike

我正在研究基于 Express (Nodejs) 的 API,该 API 使用 MySQL 进行数据持久化。我试图遵循 R.C. 爵士提出的 CLEAN ARCHITECTURE。马丁。

长话短说:-

有一些裁剪供应商和一些用户。用户可以向供应商请求具有定义数量的某些裁剪的订单。这会将订单置于 PENDING 状态。然后供应商将确认他/她从用户那里得到的订单。

域/实体 -> CROP,用例 -> 添加、删除、编辑、查找、更新数量

域/实体 -> ORDER,用例 -> 请求,确认,取消

我必须实现确认订单功能

  • 我的数据库中有一个已记录的订单,其中包含已订购的项目列表(订单处于挂起状态)
  • 现在,在确认订单操作时,我需要从 DB 记录中存在的相应裁剪中减去每个项目数量,并检查是否没有任何值变为负数(即没有订购数量超过当前数量)
  • 如果“交易覆盖”下的所有项目都完成了,那么我必须提交交易
  • 否则恢复到之前的状态(即回滚)

  • 我知道如何使用“Sequelize”运行特定于 Mysql 的事务,但有很多耦合和糟糕的源代码架构。 (如果我这样做,那么 DB 将不再像插件一样)

    我无法理解如何在维护架构的同时做到这一点,以及在哪一层实现这个事务、用例/数据访问,或者什么?

    提前致谢

    最佳答案

    我建议使用“工作单元”模式将事务保存在“适配器层”中。这样,数据库仍然是业务逻辑的插件。

    关于mysql - 如何在 "SQL Transactions"中实现 "Clean Architecture"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62085401/

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