JSON长这样
{
"errcode": 0,
"errmsg": "ok",
"department": [
{
"id": 2,
"name": "广州研发中心",
"name_en": "RDGZ",
"department_leader":["zhangsan","lisi"],
"parentid": 1,
"order": 10
},
{
"id": 3,
"name": "邮箱产品部",
"name_en": "mail",
"department_leader":["lisi","wangwu"],
"parentid": 2,
"order": 40
}
]
}
后台数据库长这样
读取JSON,转换成存表都没有问题,但如果微信那端有变更,比如部门增减了,那我们怎么保证两端一致呢,
有人说,最简单的算法就是先删再插入。的确是个最省力的方法,但是数据量如果一大,比如超过一万条记录,那执行得花不少时间,那有没有办法,节省时间,提高效率呢?
那我们是不是做一个比对算法,
算法1,2是比较简单,算法3一个一个字段去比较,耗时比较长,那我们是不是可以用一个sys(2017)计算校验和和帮助我们快速比较呢?
答案是可以的,具体可以看我前面的文章。 sys2017在数据处理与同步中的应用
那么算法就来了,
我们来验证一下算法
第一次执行,
企业微信端有,后台没有的,新增,
后台表空,全部新增
保存成功
企业微信端有,后台有,无变化=> 不操作
第二次执行,不应发生任何变更
可以看到所有的行状态都是1 ,说明不会触发DAL_CA类保存,OK.
企业微信端有,后台无,新增,
我们先删除后台表ID=3
可以看到id=3新增了。
企业微信端无后台无,新增,
后台表增加一个ID=99
此时应该触发删除操作
可以看到id99被删除了。
企业微信变更,后台修改。
现在把JSON中的ID=2,name改为北京研发中心
可以看行记录行状态变成了2,说明字段触发修改操作了。
后台表,也随之更改了。
还是效果不错的。
算法只需要改改表名,增加一个sys_chk字段,就可以轻松同步了。