这段时间在开发一个案件业务审核流程的系统,需求没有对录入的案件编号格式做具体的要求,所以习惯性的设置了案件编号格式为:录入数据时的当前时间(yyyyMMddHHssmm)。
等项目布署后就出现了一个很严重的Bug:不同案件的编号会发生相同的情况(案件编号失去了唯一性),造成修改一个案件后,其它不同案件的信息状态也会发生改变(因为数据库修改数据时是根据案件编号来修改的),造成数据的不准确。
场景还原:系统案件录入的业务员有10几个,就会产生不同业务员同时录入数据的情况(没办法,谁叫人家的上班时间都一样呢!)
编号失去唯一性,造成案件审核的错误。
解决办法:修改案件编号的定义格式为:年月日时分秒+CPU执行频率(ffff)。
最后做了案件批量添加的测试,添加成功啦!
备注:做批量测试的时候最好在编号生成前加上:System.Threading.Thread.Sleep(100); 减缓下。