批量导入数据一定得有回滚方案,什么意思呢?意思就是说如果批量导入整个过程中出现了异常,要能够很快的处理异常的数据。那怎样才能做到这一点呢?假如我现在需要将一批手机号码全部注册并生成简历,如果你直接导入手机号码进行用户注册和生成简历的话,你能知道每个手机号码执行后得到的是什么样的结果吗?是注册成功了还是失败了,失败又是为什么失败?这些你都不能很直观的看出来,所以,我们必须要有回滚方案(貌似他们之间没有什么联系,就当我强调标题吧 :)!)。
首当其冲的就是导入,导入需要注意文件的格式和“剔重”,“剔重”包括文件内重复和数据库重复两种。因为导入数据这个需求基本上不可能只导入一次,所以我们需要新建一张批次表,记录每一次导入的详情;其次就是新建一张批次手机号码表记录每次导入的手机号码等信息,这张表一定得有一个字段来标识数据的状态,导入的时候需要进行批次内剔重;再就是注册用户,注册用户需要记录当前用户的来源,并且进行数据库剔重;最后才是生成简历,需要注意的是生成简历也要记录来源。到此整个过程才算完成,其中每一个操作都是独立的,当发生异常后还可以单独执行,彼此不互相依赖,每一条数据最后的执行结果是啥样都会详细记录,注册了多少个用户,生成了多少份简历,重复了多少,失败了多少,这些统统都能很直观的看出来,而且还能针对异常的数据进行处理,这才是我们理想的方案!