首页 > 关于修改的实现逻辑

关于修改的实现逻辑

关于修改的实现方法,因为现在的遇到的情况是,修改中可能包含增加原记录条数和减少原记录条数,因此没有什么好的解决方法,想到的是删除原来所有的记录,再把修改后的记录全部再重新插入,但是觉得这种方法不是很科学,也挺浪费资源的,不知道各位遇到这样的情况都是如何解决的。

重新编辑下我的问题:
目前有两张表,A 和 B ,A是主表,B 是A 的说明表,A和B 的记录是一对多的关系,例如,A表中有水果这一条,B表中会有香蕉,梨子,苹果等等条目。
目前做的功能是修改功能,提供包括A的记录和B的记录都是可以修改的,因此A表可能被修改,B表可能被修改,且,B表还可能被增加和减少,由于B表中的记录有比较多的属性,因此不能直接用某个关键词判断是否被修改过,我能想到的解决办法,就是根据前台传过来的数据,将B表中关联的某几条记录(比如水果关联的所有记录)全部删除,再重新再全部插入,保持最新。
但是觉得这种方法不是很合理,如果我提供了批量修改的功能,改动就很大,希望前辈提供点意见。


  1. 你整个修改功能必须是要个transaction

  2. 在transaction基础上,你这样做是可以,但是不好,因为你只是修改,无需删已有记录

  3. 如果我来搞,会先把B读出来,然后和用户要修改的结果newB做集合的比较,交集保持不动,newB与B的差集插入,B与newB的差集删除。


不知道数据库是不是oracleoraclemerge into对付这种问题很拿手。

【热门文章】
【热门文章】