java - 电子商务网站那些地方会用到事务?创建订单涉及基本的那几个表?
怪我咯
怪我咯 2017-04-17 15:06:00
[Java讨论组]

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

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

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

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

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(4)
PHPz

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

迷茫

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

黄舟

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

PHPz

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号