业务逻辑是应该放在php中还是使用存储过程

因之前学习时所有逻辑都是在代码中,但是在外包公司工作后大部分逻辑都放在存储过程中,现有如下疑惑.
现在写web程序的逻辑是应该写存储过程里还是应该放在php代码中?为什么?
如果一个功能用php和存储过程都很容易完成 优先哪种.
感谢大神的指教!

阅读 5k
6 个回答

放在php中实现,这个没得说的,数据的运算或处理应放到程序端实现,不要放到数据库上。尽量不在数据库上做运算,复杂运算放到程序服务器上,尽可能简单应用SQL

在项目中不推荐使用存储过程,我所在的公司项目要求禁止使用存储过程。

为什么不推荐使用?

  • 缺少相应的日志记录,出现问题很难定位
  • 给主从同步带来隐患
  • 给数据恢复带来问题
  • 给权限控制带来隐患

肯定用PHP实现啊

原因:
1.数据库不适合作密集运算
2.使用存储过程会增加数据库额外开销
3.维护更新有盲区,有的开发者根本不知道你数据库还有存储过程。

业务逻辑必定是程序控制的,数据库只负责存储,因为业务是多变的

业务逻辑选择应用程序和存储过程,并没有大家说的那么绝对。

如果偏向于数据库中已有计算的业务逻辑,放在存储过程中也没什问题,如果非要放到应用层,需要从数据库中拉取大量数据,效率反而不高。

存储过程除了数据库操作封装得到更快速度外,最大的好处是不同语言可以使用同样的存储过程业务。统一的业务处理过程。

开发中的原则就是逻辑不要在数据库上,比如外键约束都不要用,至于惟一索引是为了绝对的保证数据惟一。

总之逻辑不要包含在数据库中,不然移植是很麻烦的,除非你保证这个项目永远不移植,永远都是你一个人维护。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题