服务端和各种客户端(手机端,平板端,web端)怎么样进行数据同步客户端需要数据库吗若需要,各种客户端对数据增删改查的时候混乱咋办若不需要,没有网络,或者网络很差的时候咋办( 二 )





■网友
谢邀
网络数据通讯最早是数据集中、操作界面也集中,也就是客户通过字符或图形终端一起操作同一台电脑,这个电脑一般是小型机,操作系统是unix,linux就是以它为原型。
后来dos盛行,就有了数据集中、程序分散的方式,数据采用文件的方式存储。这些文件在网络之间共享时,需要网络操作系统,例如novell系统,还需要通讯协议 ,例如ipx,tcp。
再后来,Windows流行,tcp协议独大了,数据库服务器普及了。数据库服务器会根据客户机发过来的指令处理数据,这就像仓库管理员根据发货单发货一样,这种指令是种语言,叫sql。这种工作方式我们称为此c/s
再后来,web兴起了,客户机和数据库服务器之间多了一层应用服务器,他们是apache,iis等等,它负责根据客户端的要求组织sql向数据库服务器调取数据并组织成一定的格式,这种格式就是xml或者json
好了,大人现在明白客户机之间是如何共享数据的了吧。他们一般不是同步,而是共享。

答完后发现自己答得牛头不对马嘴。
补充下
web方式基本是不能实现离线方式工作的,app的话大多采用本机安装类似sqllite这种微型数据库来解决。本人喜欢把数据序列化后保存在本机文件中,待重新开机时恢复,一旦恢复网络自动上传。


■网友
0.数据都在服务端,不存在服务端和客户端的同步问题,只需要客户端请求数据即可
1.客户端不需要数据库
2.没有网络就获取不到新数据

■网友
客户端什么都不用存,所有数据都是从服务端返回的,这样就能保住三端数据一样。 每次客户端启动就去服务端拿数据 。如果网络很差,客户端就返回,当前网络不佳 请检查网络 就好了 把锅甩给用户

■网友
参考金山快盘的做法,虽然它的操作对象是文件,但根据文件的最后修改时间来决定服务端和客户端哪个更新,然后用新的去同步旧的因此若在客户端也使用数据库的话,可以在数据表中增加一列时间日期类型,然后就可以按快盘的思路来了。PS:用友R9就是这样,支持在线和离线操作。只要客户端安装一个MSDE就可以了。(MSDE:微软桌面数据库引擎,即Sql Server 2000的免费轻量级版。后来的版本里改名为Sql Server Express)
■网友
问的太粗。
看应用需要决定是否要同步。比如一个时钟,就是有几个提醒也不需要。简单少量的数据也可以使用 google,apple进行简单文件同步。 需要持久的大量数据就必须同步,因为手机要更换、还要多平台使用。你不能让用户去备份恢复吧,手机怎么去备份恢复?同步方案是按数据类型和需要制定的,包括文件同步、数据库数据同步(又可分级行同步、表同步,甚至还有数据库文件同步),包括差异同步,完全同步。大多同步方案都是按照 三个时间:创建时间、最后更新、服务器同步时间来协调,至于混乱,你得多看看多线程方面,一个道理,方案很多。
■网友
都在说方法,有实用的可行的方法吗?


推荐阅读