今天总结一下这两天的工作内容吧,项目有一个记录模块原来只做了网络存储,所有的增删改查都依赖于网络,同时还有几个H5的展示界面,也是在服务器抓取数据,就这样有些没有wifi的客户便开始吐槽了(就是做个记录自己看,还要用我流量),大概就是这个样子,下面开始进入正题。
我需要做的:本地要建立数据库,然后H5要在我这拿数据(这个后续会说到),要抓取服务器的历史数据,还要考虑到用户两个手机切换使用时的同步问题(这是这次重点)。
本地数据库需要字段(id , net_Id , update_time , state ) // net_id 为服务器id, state为数据现在状态(分为:0,已上传,1新添,2已修改,3已删除)
服务器数据库需要字段(id , updata_time , state)
首先,id问题,我们选择的是本地数据库与服务器数据库维护两套不同的id(本地同时要存在本地id与服务器id,服务器数据库只维护自己id即可),本地的本地id自增(作为本地数据库的主键),未上传时本地数据库的服务器id为空,上传后服务器返回服务器id(服务器的id也为自增)并赋给本条数据。
然后就是同步操作了,第一次同步,此时update_time默认为0(存储在sharedpreference中)客户端需要拉取后台服务器数据库中的所有数据,并自动添加本地id(自增),此时将update_time设置为当前系统时间。之后如果网络状态一直良好,则在每次对本地数据库进行操作之后都对服务器进行操作,其中如果新添数据,则在上传成功之后接收返回来的服务器id赋给当前数据存入本地。如果用户的网络状态一直不好则所有操作都在本地进行。