数据操作控制

      1.当执行一个功能的时候需要执行多个更新操作,如:插入多个对象,删除多个对象等,就可能存在执行一个更新操作成功之后下一个更新操作失败,那么这个功能的执行就算是失败的,可是却向数据库添加或删除了不完全的相关数据,所以就会出现脏数据
      解决方法:
      1) 通过事物控制让多个执行语句一起提交commit,commit失败的话就回滚rollback,做到事物的原子性原则
      2) 在数据库设置一个操作成功或失败的字段(或者本地临时文件里存放相关的控制数据),通过该字段进行控制,在执行出错后删除所有含有操作失败字段的数据
       
      2.数据库同步访问控制:比如说一条记录有两个以上的用户同时访问,他们读取出来的是相同的数据,但写入时有先后,如果不做控制就会出现后来写入的数据把原来做了更新的数据覆盖,使原来做的更新操作丢失就是无效,因为他们都是在最原始读取出来的数据上做的修改,而不是在别人做了修改后的数据上做修改
      解决方法:
      1) 可以在数据库多设置一个版本字段来控制该数据的历史版本号(或者本地临时文件里存放相关的控制数据),就是没个人做了修改以后都要更新一下这个版本字段,同时更新之前也要做一下版本的比较,如果现在的版本和之前取出来的数据的版本不一样,那么就要从新读取数据再写入,这样就可以保证不会丢失修改
     

posted on 2007-01-14 12:00 JGAO编程随笔 阅读(175) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 
<2007年1月>
31123456
78910111213
14151617181920
21222324252627
28293031123
45678910

导航

统计

常用链接

留言簿(1)

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜