php–Laravel:将所有代码放入数据库事务中这是一个好习惯吗?事件无数据库查询代码?

php–Laravel:将所有代码放入数据库事务中这是一个好习惯吗?事件无数据库查询代码?,第1张

概述我正在创建一个订阅和团队!系统.这是伪代码: $sub = Sub::create($sub_data); if(request for new team){ $team = Team:create($team_data) Mail::queue....// sending email and notif

我正在创建一个订阅和团队!系统.

这是伪代码:

    $sub = Sub::create($sub_data);    if(request for new team){       $team = Team:create($team_data)       Mail::queue....// sending email and notif       // some PHP code here    }    elseif(request to join a team)     {       $team = Team:find($team_data)       $team->subscriber()->create($team_data) // a team has many subscribers       Mail::queue....// sending email and notif       // some PHP code here    }     // Here some extra querIEs... 

现在我希望所有查询都在DB事务中执行.我可以将所有上述代码放在Laravel Transaction闭包中吗?

DB::transaction(function(){ // all the above code here });

我的意思是有这么多的PHP代码和没有查询逻辑,比如发送电子邮件……这是一个好习惯吗?如果不是,我该怎么办?最佳答案根据Laravel文档:

You may use the transaction method on the DB facade to run a set of operations within a database transaction. If an exception is thrown within the transaction Closure,the transaction will automatically be rolled back. If the Closure executes successfully,the transaction will automatically be committed.

当您正在进行的数据库 *** 作集需要是原子时,您可以使用事务.

那就是 – 他们都需要成功或失败.介于两者之间.

事务将用于确保数据库始终处于一致状态.

始终是创建交易的不良做法?

这取决于你在这里谈论的背景.如果是更新,那么我强烈建议明确使用TRANSACTIONS.如果它是SELECT然后NO(显式).

总结

以上是内存溢出为你收集整理的php – Laravel:将所有代码放入数据库事务中这是一个好习惯吗?事件无数据库查询代码?全部内容,希望文章能够帮你解决php – Laravel:将所有代码放入数据库事务中这是一个好习惯吗?事件无数据库查询代码?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1168708.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存