16.1.2 存储过程和函数的使用场景
在实际的企业项目开发过程中,往往不会只编写针对一个或多个表的单条SQL语句,而经常会编写一些复杂的业务逻辑,这些业务逻辑往往需要多条SQL语句的配合才能完成。
在实际工作中,可以单独编写每条SQL语句,根据SQL语句执行的先后顺序和结果条件,依次执行其他SQL语句。不过,在每个需要处理这些逻辑的地方,都需要编写这些复杂的业务逻辑来保证业务流程的正确性。
例如,在笔者主导开发的电商系统中,一个典型的场景就是用户提交订单的流程。在用户提交订单时,系统中会包含如下几种行为:
·当用户直接下单时,必须校验商品的库存信息;
·当用户从购物车下单时,必须校验商品的有效状态(是否被下架)和库存信息;
·如果商品有效并存在库存,则锁定相关商品,并减少对应商品的库存信息,以保证正确的库存量;
·如果商品无效(商品已下架),则需要通知用户该商品已经被下架,无法生成订单;
·如果商品库存不足,需要通知库存进货,并需要与供应商进行交互;
·还需要通知用户哪些商品可以直接发货,哪些商品需要取消订单。
注意:这里只列举出了笔者主导开发的电商系统下单逻辑的部分流程。