前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VFP适用于不同业务系统的基于sy(2017)数据同步算法,好用。

VFP适用于不同业务系统的基于sy(2017)数据同步算法,好用。

作者头像
加菲猫的VFP
发布2024-05-18 08:01:35
830
发布2024-05-18 08:01:35
举报
文章被收录于专栏:加菲猫的VFP加菲猫的VFP
问题提出:企业微信的服务器API可以下载部门JSON,这个JSON要转化为表存到数据库department表中。

JSON长这样

代码语言:javascript
复制
{
   "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. 企业微信端有修改的,后台修改。

算法1,2是比较简单,算法3一个一个字段去比较,耗时比较长,那我们是不是可以用一个sys(2017)计算校验和和帮助我们快速比较呢?

答案是可以的,具体可以看我前面的文章。 sys2017在数据处理与同步中的应用

那么算法就来了,

代码语言:javascript
复制

我们来验证一下算法

第一次执行,

企业微信端有,后台没有的,新增,

后台表空,全部新增

保存成功

企业微信端有,后台有,无变化=> 不操作

第二次执行,不应发生任何变更

可以看到所有的行状态都是1 ,说明不会触发DAL_CA类保存,OK.

企业微信端有,后台无,新增,

我们先删除后台表ID=3

可以看到id=3新增了。

企业微信端无后台无,新增,

后台表增加一个ID=99

此时应该触发删除操作

可以看到id99被删除了。

企业微信变更,后台修改。

现在把JSON中的ID=2,name改为北京研发中心

可以看行记录行状态变成了2,说明字段触发修改操作了。

后台表,也随之更改了。

还是效果不错的。

算法只需要改改表名,增加一个sys_chk字段,就可以轻松同步了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 加菲猫的VFP 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档