首页 新闻 会员 周边 捐助

问一个问题,不知道谁做过业务操作级别的回滚!那个能提供一下思路么?

0
悬赏园豆:20 [已解决问题] 解决于 2013-11-11 16:13

问一个问题,不知道谁做过业务操作级别的回滚!那个能提供一下思路么?

例如我买一个东西,结果对方在交易成功之后发现自己交易错了,然后想取消这次操作,请请问大致的思路是什么??

ps:一次操作 会涉及n张表的改动!

小眼睛老鼠的主页 小眼睛老鼠 | 老鸟四级 | 园豆:2731
提问于:2013-09-18 15:53
< >
分享
最佳答案
2

交易成功之后发现交易错了,交易的事务已经完成,已经不存在事务了。这个时候,你只能采取逆向业务操作,比如线上退款啊,什么的,提供一个业务功能给用户来提交此类申请,再设计一个逆向退款的业务,就可以了。

收获园豆:20
dongger | 菜鸟二级 |园豆:209 | 2013-09-18 16:22
其他回答(11)
0

1.TransactionScope用这个包住你的操作

2.用unit of work模式

可以看看蒋叶湖的博客有相关内容

IT屌丝 | 园豆:184 (初学一级) | 2013-09-18 15:56

我可能没有说清楚!我说了 是执行成功了。这个操作是成功的,但是在业务上可能是手误的原因要取消这个操作。

支持(0) 反对(0) 小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2013-09-18 16:01

@小眼睛老鼠: 难道不可以直接删除数据?

支持(0) 反对(0) IT屌丝 | 园豆:184 (初学一级) | 2013-09-18 16:09

@IT屌丝: 你觉得呢?和钱有关的!

支持(0) 反对(0) 小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2013-09-18 16:13

@小眼睛老鼠: 打个比喻 你执行了一次交易

有几张表加了几条记录

然后有一张关键表 更新了数据 (这里特指钱)

但是发现交易成功后 很久 客户才发现这次交易错误了

然后要撤销这次操作

那么这个时候怎么撤销??

支持(0) 反对(0) 小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2013-09-18 16:15

@小眼睛老鼠: 可以通过数据库日志进行回滚

支持(0) 反对(0) dudu | 园豆:29839 (高人七级) | 2013-09-18 17:03
0

这个你可以在手误或者有其他原因的情况跑出异常,然后在异常的地方处理。

打一个情 | 园豆:203 (菜鸟二级) | 2013-09-18 16:15
0

只能反向将所有相关表的记录标识为无效了。这个已经不算是事务了。

幻天芒 | 园豆:37207 (高人七级) | 2013-09-18 16:18
1

结果对方在交易成功之后发现自己交易错了?

这种都交易过了,还回滚?事务难道能持久解决?

那你还不如做成12306那种退票的、订票成功,记录该用户订票价格等信息、也付款了,就类似于你的交易成功、但是我发现我订的票时间来不及,那我直接退票、这个时候重启一个交易将原来的价格退换给用户账号、

Beyond-bit | 园豆:2885 (老鸟四级) | 2013-09-18 16:21
0

这个已经不算是事务了。这算是网站的一种功能。买东西,然后后悔了,然后取消订单。要写专门的退单流程吧。

angelshelter | 园豆:9914 (大侠五级) | 2013-09-18 16:41
0

专门做回滚记录了,可以用XML做记录或其它 单独一个业务流程了

Yu | 园豆:12990 (专家六级) | 2013-09-18 17:18
0

悔棋

Albert Fei | 园豆:2102 (老鸟四级) | 2013-09-19 14:54
0

一个流程好多步,每一步必须都要完成才行.

数据库的ACID

[秦时明月] | 园豆:738 (小虾三级) | 2013-09-20 17:36
0

擦,一堆技术流。这和事务无关,和业务有关。数据表设计时,一个状态字段加备注字段。说明情况。关系到钱的问题的时候,也不能直接删或者回滚什么的,做一条类似财务上冲红的操作,就是加一条数字为负的对应记录,总体求和的时候,能持平就行了。总之这个问题是个关键的业务问题。只要保证历史操作记录保持原样可查,取消原因可查,取消动作可查,最后最重要的是关于钱的最后总和是能持平的。

arg | 园豆:1047 (小虾三级) | 2013-09-21 11:53
0

晕,这跟事务有什么关系?

事务不是用来处理这个问题的,流程都走完了,必须走别一个撤销流程,而不是让之前的流程失败

builderman | 园豆:256 (菜鸟二级) | 2013-09-21 23:56
0

做一个撤消功能

panjk | 园豆:712 (小虾三级) | 2013-09-22 09:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册