c/s结构,多客户端的数据同步问题???

时间:2022-05-27 09:01:14
    我有个中心服务器安装sql2000数据库,客户端距离服务器比较远,开始是每个客户端直接连接中心服务器的数据库,但是由于线路的问题,有的时候网络不通,客户端就无法登陆和工作,现在改为在每个客户端也安装了数据库,网络连通时将中心服务器的相关数据下载到本地,然后本地数据库先保存数据,做个是否已上传的标示,如果网络联通就上传数据,如果不通就等下次网络通时,将没有上传的数据上传上去。
问题是:我要在中心服务器下订单,比如 A客户电脑50台,然后 A客户可能在不同的客户端提走电脑,如果我客户端直接连接服务器的话,我就可以直接更新订单所剩的数量,例如:在门店1(客户端)提货10台,再去门店2的时候门店2就可以看出A客户的订单剩40台了。如果我将服务器端的数据下载到客户端,那么每个客户端下载下来A客户的订单都是50台,在这个基础上往下减,等网络连通后汇总到服务器,订单剩余数量可能就变成负数了。可能A客户在门店1提了50台,在门店2提了20台,所以我知道这样下载服务器端的数据肯定不对,那么针对这种情况有什么好的办法解决。既能保证客户端在网络不通的情况下正常工作,又能避免数据错误。

6 个解决方案

#1


这种情况,没有办法解决,除非这类数据提出来,只能在中心数据库提交,其它查询类数据才可以客户端缓存

#2


这种情况,没有办法解决,除非这类数据提出来,只能在中心数据库提交,其它查询类数据才可以客户端缓存

#3


c/s结构,多客户端的数据同步问题???

#4


引用 2 楼 haiwer 的回复:
这种情况,没有办法解决,除非这类数据提出来,只能在中心数据库提交,其它查询类数据才可以客户端缓存

关键问题是,中心服务器端主要是查询和下订单(客户订购数量),客户端负责提交具体的订单(是分批的,而且根据订单剩余数量进行报警提示)。难道就只能直连服务器端数据库,那网络有时候不通怎么办?

#5


事务性的要求是硬性的,总不能允许功能缺陷。

查询功能可以考虑在客户端进行,客户端的数据保留多些,有利于提高查询性能,但是事务性的比如下单、提单,必须集中到中心,尽量解决网络问题。

#6


顶楼上,网络不通,难道电脑还能自动打电话联系,来知道现在剩几台?
只能关键方法都在中心处理

#1


这种情况,没有办法解决,除非这类数据提出来,只能在中心数据库提交,其它查询类数据才可以客户端缓存

#2


这种情况,没有办法解决,除非这类数据提出来,只能在中心数据库提交,其它查询类数据才可以客户端缓存

#3


c/s结构,多客户端的数据同步问题???

#4


引用 2 楼 haiwer 的回复:
这种情况,没有办法解决,除非这类数据提出来,只能在中心数据库提交,其它查询类数据才可以客户端缓存

关键问题是,中心服务器端主要是查询和下订单(客户订购数量),客户端负责提交具体的订单(是分批的,而且根据订单剩余数量进行报警提示)。难道就只能直连服务器端数据库,那网络有时候不通怎么办?

#5


事务性的要求是硬性的,总不能允许功能缺陷。

查询功能可以考虑在客户端进行,客户端的数据保留多些,有利于提高查询性能,但是事务性的比如下单、提单,必须集中到中心,尽量解决网络问题。

#6


顶楼上,网络不通,难道电脑还能自动打电话联系,来知道现在剩几台?
只能关键方法都在中心处理