数据对碰

  业务场景:有两张数据库表,一张是用来统计资源(通俗的讲,类似于IP供应商用来统计自己所拥有IP地址的数量表,上面记录着ip各种数据和使用状态之类的),另一张是用户使用表(就是统计分配给用户的IP信息以及用户的个人信息)。现在要定期比对两张表的某些字段从而筛选出两组或两组以上的数据插入到其他表中,举个例子:比较资源表和用户表中的IP字段和用户名字段(假设这两张表上都有这个字段),如果两张表这两个字段都有值且值相同,就讲这组数据筛选为正常数据,如果有值但值不相同或者说用户表上的IP数据在资源表中查询不到则为异常数据,最后资源表上的IP地址在用户表中查询不到就代表该IP(资源)未使用。。总之就是两张表在结构上毫无关系,但在业务上千丝万缕,也可能最开始设计就有问题,但在这种情况下筛选数据我只能想到穷举。

 

解决方案:先筛选出正常数据,剩下的全部当成异常数据,但这又会导致筛选的数据可能会重复,只能在读取异常表数据的时候进行去重操作。(目前暂定)

2023-3-5

  对碰终于告一段落了,最后还是在Service层写了三个方法(方法的返回值为布尔类型)去筛选三组数据。先在主方法中定义三组数据类型的集合,再传入这三个方法内。方法内只要筛选到符合要求的数据就添加到对应的集合,等三个方法都执行完再判断三个布尔类型是否都为True,是的话就修改数据库,否的话就全部回滚。(不得不说数据库还是批量插入比较快,比for循环一次又一次的插入快得不是一丁半点)

posted @ 2023-02-13 23:54  陈阿  阅读(173)  评论(0)    收藏  举报