最近做了一个工具类的项目,涉及到数据同步,将其整理一下:
需求:
简单说一下项目,项目是用户可以创建计划,在计划内可以采集多个点,每个点又都可以关联多张照片。
1. 服务器提前抓取个数据,应用启动的时候需要将其同步到本地,且基础数据在服务端和客户端都不删除,保留原始数据。
2. 客户端可以单个将计划中的单个点(新建、修改、关联图片)
数据库设计及其数据库表的特殊设计:
注:
1. 服务端数据也是基础数据和用户数据分开的 ,在提供的接口中也是分开提供的。
2. 在点和点对应的图片表中都有一个state字段,对于不同的操作,不同的状态对应不同的逻辑处理。
同步流程:
整个同步流程无论是单个同步还是全部同步,都划分为两个流程,一个是点的同步,后一个是点对应的图片的同步。
遇到的问题和需要注意的点:
1. 对于当前需求,同步服务端数据时只有在第一次安装的时候同步,(添加了同步判断),不是每次都同步,一个账号多个ap登录无法实现同步。
2. 同步数据需要一个时间段,此时若有删除数据的操作,会出现帐数据,在逻辑上需要注意这个操作。
3. 对于删除的操作,根据状态判断,0直接删除,其他修改状态
4. 直接从服务器同步下来的点和点对应的图片的状态都是1(已同步状态)。
5. 同步的时候统计应该是在每一次接口调用后