我提出的那个方案是可行的。首先 order 创建和数量的更新需要在一个 transaction 中进行。在更新数量的时候使用上面提到的 `where update_all` 进行更新，如果影响数量为0，抛异常 rollback 整个 transaction。如果成功更新就提交 transaction。如果两个用户同时下单，同时去尝试更新数量，因为 transaction 的保证，有一个用户是会 block 在那，直到另一个用户的 transaction commit 了或者 rollback 了，所以能保证只有一个用户能提交成功。

这个可以作为 enhancement 在 #467 中继续完善。