100分求同一用户多个客户端与服务器的同步该如何设计?
老鱼趣多多 2012-05-17 02:34:01 模拟环境如下:
用户某某有两台电脑A,B,分别装有客户端(客户端有本地数据库),用户希望在A上增删改了数据,在B电脑上同步就能体现出来。
我现在想到的方法是:
用户某某在A上变更,提交到一台服务器上,在B上进行同步,就是从服务器上拿数据,最新数据就下载下来了。
服务器上有一张用户表,每个用户一个同步时间戳字段。在A电脑上的操作,增删改,都提交到服务器的一张交换表上,
上面记录着每个用户每张表上的增删改ID,同时把最新的数据塞到相应表中,这样,B就可以通过时间戳和增删改ID从相应表里把需要同步的数据拉出来,下载到B电脑,OK,一切完事了。
问题来了,用户每张表都有增删改内容,即一张表对应3套变更记录(增、删、改),就要3次数据合并,比如现在是3张表,就是3X3次合并。以后变成4张表,8张表的,结构变化了,还得重新扩展。
这个该怎么设计为好?
注:
1.用户客户端有本地数据库,是sqlite,服务器数据库是mysql
2.目前需要支持windows客户端,后续还要支持android,iphone