【发布时间】:2018-08-19 19:49:09
【问题描述】:
假设您有三个模型,Organization、OrganizationUser 和 User。
您需要处理以下请求:
当用户创建组织时,他们应该成为与该组织关联的用户(
OrganizationUser表中的一行)。如果上述任何操作失败,则整个“流程”应该失败。这应该通过事务来实现。
以下是我认为构建它的三种最佳方式:
- 在控制器中,创建 TXN,将其传递给 Organization 和 OrganizationUser 模型以创建各自的行。如果需要,回滚。控制器包含业务逻辑(用户付费、组织类型...等)。
- 在控制器中,调用处理事务创建的
CreateOrganizationService,将其从控制器中抽象出来;将其传递给模型。CreateOrganizationService是我们保留大部分业务逻辑的地方 - 拥有
Organization模型需要OrganizationUser模型并负责事务创建、业务逻辑和OrganizationUser行的创建。
有没有更好的思考方式,或者我可以应用不同的方法/模式?
【问题讨论】:
标签: api model-view-controller model transactions