想听听大伙的看法谢谢。
正如 @brzhang 所说,逻辑用代码实现,可最大程度复用,比如你一个订单信息查询功能,以service的形式暴露给其他系统(如CRM),要比以存储过程的形式提供给其他系统来的好,后者还要附带数据库帐户密码,同时多系统操作也会带来数据安全问题;
用代码来实现还有一个好处就是提高代码可读性,可维护性,可扩展性,这个可以自己yy.
如果逻辑相对稳定,复用性不强,可以直接用sql,比如报表查询,在系统中属于很独立的一块,很多人都喜欢结合存储过程和开源的报表工具快速做出复杂报表。
逻辑放在SQL中短期确实感觉很快、很爽。
SQL
不过随着项目发展,项目就会变的怪怪的,什么事都要用SQL搞,你的开发和维护也变成了增加SQL、修改SQL、优化SQL。增加一个条件?我动态拼一个SQL条件不就搞定了?慢慢的,百行长的SQL就出现了,那些让人看不懂的东西也出现了。那么,Web开发就是拼SQL吗?或者说Web开发就只会用到SQL吗?万一需要Redis,万一你的SQL失灵了呢?
Redis
我之前也遇到这个问题,我认为如果用ORM框架的话能避免这个问题。
我一般在model层写一些简单的CURD操作。逻辑我还是放在了controller层,这样子model层可以最大成都的复用。sql中去实现那些和业务相关的逻辑的话,你的这段sql几乎不存在可复用性。话有说回来,逻辑写在sql中,并不是没有好处,可能你将逻辑写在sql中之需要查一次DB搞定,若不在sql中,可能需要controller中调几个model中的方法才能做到,明显造成了一个问题,需要查多次db,取舍还需看具体业务了。
外键,唯一 等约束也是可以用用的
大型系统必须得要存储过程和触发器吗?
以及存储过程系列
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(6)
各有利弊,酌情选择
逻辑放在
SQL
中短期确实感觉很快、很爽。不过随着项目发展,项目就会变的怪怪的,什么事都要用
SQL
搞,你的开发和维护也变成了增加SQL
、修改SQL
、优化SQL
。增加一个条件?我动态拼一个SQL
条件不就搞定了?慢慢的,百行长的SQL
就出现了,那些让人看不懂的东西也出现了。那么,Web开发就是拼SQL吗?或者说Web开发就只会用到SQL
吗?万一需要Redis
,万一你的SQL
失灵了呢?我之前也遇到这个问题,我认为如果用ORM框架的话能避免这个问题。
我一般在model层写一些简单的CURD操作。逻辑我还是放在了controller层,这样子model层可以最大成都的复用。
sql中去实现那些和业务相关的逻辑的话,你的这段sql几乎不存在可复用性。
话有说回来,
逻辑写在sql中,并不是没有好处,可能你将逻辑写在sql中之需要查一次DB搞定,若不在sql中,可能需要controller中调几个model中的方法才能做到,明显造成了一个问题,需要查多次db,取舍还需看具体业务了。
外键,唯一 等约束也是可以用用的
大型系统必须得要存储过程和触发器吗?
以及存储过程系列