最近接到一个老客户的项目,客户要求把现在用的分销系统跟目前的进销存系统进行数据的同步。
但是客户的分销跟进销存都是买的正版,隔三差五的就升级一次,所以,尽量少修改这两个系统的源代码,因为如果修改了源代码,升级的时候,会替换掉数据的同步代码,所以,只能从数据库入手了。
客户的要求:
- 微信分销上的付款订单,要实时传入进销存的销货单,包含购买的商品数量,价格,联系人等发货信息,同时要写入分销系统等客户列表,方便查看客户信息。
- 仓库发货完成之后,在进销存上面填写发货单号,数据要同步到微信分销商城,并且商城上订单显示已发货。
- 仓库在某个产品库存不足,采购入库之后,最新的库存信息要同步到分销商城的库存上。
既然程序要经常升级,所以,不打算修改源代码了,要不以后要反复修改,所以只能从数据库入手了。
具体方案是,写一个两个数据库的同步文件,然后放在服务器上定时执行,目前设定一分钟执行一次。
代码量不是很多,大约也就是200行,关键是要弄清楚两个数据库中不同表,不同字段的对应关系,光是这个,就花了一天多的时间来记录,写程序其实是很快的,大约半天不到。
因为两个系统完全不同,所以,为了数据的记录区分,在进销存数据表中新增了几个字段。
目前客户订单数量在1000左右,由于工期比较紧,直接在循环中进行了数据库的查,增,改操作,效率有点低,而且每次执行,都要所有的订单商品全部遍历一遍遍,不过执行一次时间在
左右,效率还是可以的。
其实可以设置白天工作日同步快一点,晚上不同步,反正仓库也没有人。
还有好多需要优化的地方,不过,交给客户先测试,然后慢慢改进吧。
因为是单页面,只有一个文件,所以,懒的用框架了,原声sql语句又太麻烦,这里给大家推荐一个php的数据库操作类,https://github.com/catfan/Medoo
使用特别简单高效。
如果对源代码有需要的,可以联系我,共同研究下如何把同步效率做到较高。