这个问题都是需求和测试把我逼到这条路上的
前提:
有一张表,表里包括但不限于字段 “产品业务单号” “区域”
在导入之前需要进行唯一性校验
第一次需求:以“产品业务单号”为唯一校验标识,第一次没有做任何的优化,万幸上线之后,没有大数据量的导入,不然肯定GG了
(缺点:数据表中有81W条数据,当大数据量导入进行校验时,一条一条的去校验,假如导入1000条数据,那么就会以每条数据的“产品业务单号”为条件去查询数据库,需要查询1000次,虽然没试过,但我也不敢试,指不定就完蛋了呢)
第二次需求:是我自己提出来的,将之前的 “产品业务单号” 为唯一校验标识 改为 “产品业务单号”+“区域” 作为唯一校验标识,然后开动,区域分为三层----(省份、地市、区县),很愉悦的就完成了,因为一般到区县级也就3000+数据而已
(方案:根据excel表格中 “区域” 查询出来数据库中该 “区域” 内的所有产品业务单号 先保存在内存中,然后再用excel中的“产品业务单号” 进行校验,这样因为限定区域内数据少,所以查询也快,校验也快)
第三次需求:由于地市用户有可能会修改区县,比如产品业务单号“AAAAAA”所属区县为福建省厦门市集美区,现在厦门市用户(地市级别用户)想要把“AAAAAA”改到福建省厦门市思明区,这样的话就需要从厦门市级别去查询所有产品业务单号,然后保存在内存中,之前不能修改区县,我只需要在集美区查询