多个Android客户端同步服务器端表中数据架构分析

需求:Android客户端有N个,服务器端只有一个,客户端会不定时的到服务器端同步数据。

思路分析:
    由于客户端的个数不确定,而且是不定时的到服务器端同步数据,所以应该由客户端来维护何时发起请求.
    客户端和服务器端都维护一个TableVersion表,服务器端某个数据表中的数据改变时同时修改服务器端的TableVersion表.如下图:

table1中添加了1条数据,rowVersion值为4(自增),修改了1条数据,则把这条数据的rowVersion修改为5(自增),然后又添加了1条数据,这时这条数据的rowVersion为6(自增).table1中每次变动都会同时修改服务器端的TableVersion中table1这一条的数据的Version值,保持当前表的最大值.


    客户端发起同步请求时携带客户端的TableVersion数据传递给服务器端,服务器端比对传递过来的客户端TableVersion和服务器端TableVersion的差异就知道了哪些表发生了变化,如下图:

通过比对知道了table1和table3中的数据发生了变化,这时就需要把table1/table3中变化的数据和TableVersion中的全部数据传递给客户端,客户端修改本地的table1/table3和TableVersion中的数据,这就完成了一次同步的过程.例如table1中的数据rowVersion大于3的数据是变化了的数据,因为客户端tableVersion当前记录代表了本地数据的最大版本,只同步这些rowVersion大于3的数据就是只同步变化了的数据.

关于客户端和服务器端交互请参考:

  封装一个类搞定90%安卓客户端与服务器端交互  http://blog.csdn.net/lk_blog/article/details/7706348 

android端数据库处理框架请参考:

 Android sqlite数据库操作通用框架AHibernate(一) http://blog.csdn.net/lk_blog/article/details/7455992

数据传递可以使用json,请参考:

 Json转换利器Gson之实例一-简单对象转化和带泛型的List转化 http://blog.csdn.net/lk_blog/article/details/7685169


  • 6
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值