电子商务网站那些地方会用到事务?创建订单涉及基本的那几个表?
之前的面试的时候,被问到这个问题。答得不是很好,所以来请教一下
-
那些地方会用到事务?
-
创建订单而未支付的情况下,订单保存在哪里?
-
取消订单的操作流程。
Answers
1.订单保存,下单附属的营销活动比如下单送优惠券,积分扣减等。
2.订单的支付与否并不是区隔订单信息保存位置的因素,一般的电商系统会有 orders表来保存订单主体信息,比如订单ID,下单人ID,下单时间等,然后 order_items 表来保存订单详细的商品信息,比如订单包含多少件商品,order_logs 表来保存订单操作日志信息,比如何时下单,何时付款等等,而订单付款与否只是订单的一个状态是保存在 orders 表中的,与此状态关联的应该还有一张 payment_logs 表,并且使用 order_id 做关联。
3.取消订单属于逆向流程,如果在下单过程中事务做的比较充足的话,那么这里也应该有充足的逆向事务逻辑,比如商品库存,积分 优惠券等的回滚。
第一个问题就是只要有增删改的地方都会用到事物,客户端比如用户对订单的操作(创建,修改),系统后台比如对商品的增删改,订单的取消等等。
第二个问题一般就是订单设置个状态就行了,比如订单的未付款,已完成,发货中,配送中,已签收,提交取消中,取消完成等等,你可以去看看淘宝或者京东自己操作一把大概就知道了
第三个问题取消订单的话,要看公司的具体业务的 比如有的公司取消订单的时候要看你取消前的状态 比如还没有发货或者是没付款可以取消,已经在配送了可能就不让取消了,我以前公司的操作是配送中的订单就不让取消,要取消就是申请退货了。取消订单的流程大概就是用户申请取消,然后如果是未付款订单的话只要输入取消原因就可以直接取消,如果牵涉退款的话就要后台订单系统确认是否可以取消,确认以后可以取消还要退款,同时要改变订单的状态,让库存回滚。
其实这个是看你具体的电商经验了 每个公司具体的都不一样 只能说大概相同。