电子商务网站那些地方会用到事务?创建订单涉及基本的那几个表?


之前的面试的时候,被问到这个问题。答得不是很好,所以来请教一下

  1. 那些地方会用到事务?

  2. 创建订单而未支付的情况下,订单保存在哪里?

  3. 取消订单的操作流程。

事务 java

busad 9 years, 2 months ago

这个问题太难。
只要一次性操作更新多张表就用事务。

叛逆的西撒 answered 9 years, 2 months ago

脱离实际业务场景问这个问题就是耍流氓

回忆那段伤 answered 9 years, 2 months ago

1.订单保存,下单附属的营销活动比如下单送优惠券,积分扣减等。
2.订单的支付与否并不是区隔订单信息保存位置的因素,一般的电商系统会有 orders表来保存订单主体信息,比如订单ID,下单人ID,下单时间等,然后 order_items 表来保存订单详细的商品信息,比如订单包含多少件商品,order_logs 表来保存订单操作日志信息,比如何时下单,何时付款等等,而订单付款与否只是订单的一个状态是保存在 orders 表中的,与此状态关联的应该还有一张 payment_logs 表,并且使用 order_id 做关联。
3.取消订单属于逆向流程,如果在下单过程中事务做的比较充足的话,那么这里也应该有充足的逆向事务逻辑,比如商品库存,积分 优惠券等的回滚。

jupiter answered 9 years, 2 months ago

订单保存数据库过程加个事务。订单有状态显示的,待处理,完成,失败之类;未支付就是待处理;
取消订单就是失败状态;

湿润的香蕉 answered 9 years, 2 months ago

第一个问题就是只要有增删改的地方都会用到事物,客户端比如用户对订单的操作(创建,修改),系统后台比如对商品的增删改,订单的取消等等。
第二个问题一般就是订单设置个状态就行了,比如订单的未付款,已完成,发货中,配送中,已签收,提交取消中,取消完成等等,你可以去看看淘宝或者京东自己操作一把大概就知道了
第三个问题取消订单的话,要看公司的具体业务的 比如有的公司取消订单的时候要看你取消前的状态 比如还没有发货或者是没付款可以取消,已经在配送了可能就不让取消了,我以前公司的操作是配送中的订单就不让取消,要取消就是申请退货了。取消订单的流程大概就是用户申请取消,然后如果是未付款订单的话只要输入取消原因就可以直接取消,如果牵涉退款的话就要后台订单系统确认是否可以取消,确认以后可以取消还要退款,同时要改变订单的状态,让库存回滚。
其实这个是看你具体的电商经验了 每个公司具体的都不一样 只能说大概相同。

呆叔在呆弯 answered 9 years, 2 months ago

Your Answer