【发布时间】:2009-10-27 21:47:01
【问题描述】:
我只是想知道如何最好地处理跨多个服务层的事务。服务层使用 ORM 从数据库中存储和检索。交易是否应该在各个服务层内被知晓和处理?还是应该由另一层处理?
例如:我有两个服务层用于用户和客户端。我想:
1) 创建并保存新客户端
2) 创建并保存新用户
3) 将该用户分配给客户端
全部在一个事务中。
一个简单的例子可能如下所示:
$userManagementService = new UserManagementService;
$newUserData = array(...);
$newUser = $userManagementService->create($newUserData);
$clientManagementService = new ClientManagementService;
$newClientData = array(...);
$newClient = $clientManagementService->create($newClientData);
$userManagementService->assignUserToClient($newUser, $newClient);
事务逻辑应该去哪里?
【问题讨论】:
标签: php database design-patterns transactions domain-driven-design