客户端有个winform系统,
断网的时候想把数据存到本地,等联网后再提交到服务器,
我的想法是:
1:服务器一个数据库
2:客户端一个数据库
当检测到断网后,所有提交的数据存到本地,想法是这样想的,但总感觉数据会对不上
不知道具体应该怎么设计,求各位指点
我的想法:
本地数据库的每个表我都加一个字段,数据int类型(data_type)
每次添加操作的时候都判断一下是否联网,
如果联网,sql请求服务器链接,将数据存到服务器数据库
如果断网,sql请求本地链接,将数据存到本地数据库,data_type=1
新加一个同步功能按钮,将所有数据库数据状态data_type=1的数据添加到服务器表中,同步过的数据状态data_type更新为2
这是一个很大的工程,某种程度上来说,开发成本甚至于超过你这套系统的开发成本。
如果你想要一个很通用的解决方法的话。需要处理的问题太多了。
如果你还是想开发,挑战一下自己,无所谓成本。
那么,一个个问题列出来,能接受的代价,如何解决这个问题。
我就举几个简单的例子,如果你要考虑断网,
给每行数据加版本号,如果两地版本号不一致则版本号高的替换掉版本号低的。注意删除数据的处理,可能需要一个如-1这样的特殊版本号或其它标志。
这样行不行?
每个表我都加一个字段,数据int类型(data_type)
每次添加操作的时候都判断一下是否联网,
如果联网,sql请求服务器链接,将数据存到服务器数据库,data_type=0
如果断网,sql请求本地链接,将数据存到本地数据库,data_type=1
新加一个同步功能按钮,将所有数据库数据状态为1的数据添加到服务器表中,同步过的数据状态data_type更新为2
@大da脸: 删除和修改呢?要考虑吗,你说的只是考虑了新增
@会长: 本地的只是临时存储,主要是为了同步到服务器数据库
存储本地为主,服务器是用来同步, 将本地自升id保存到服务器的自定义的一个字段ids中,检查本地id和服务器自定义字段中ids的总数和最后一个,不一样时,比对少了哪个,再上传
为何不两个地方都储存数据,然后使用sql同步备份不久好了,类似为了防止数据丢失,进行的双机备份
– 但乱红尘 5年前@但乱红尘: 客户端正用着,啪叽断网了,线上的数据库无法提交,是不是要保存到本地处理?
– 大da脸 5年前@大da脸: 我得意思是,无论断不断网,本地都进行备份就好啦,就像会长说的,可以那样处理一波
– 但乱红尘 5年前@但乱红尘: 服务器的数据库和本地数据库唯一不同的是 ,有一个患者表,线上的是导医添加进去的,本地是自己添加进去的
– 大da脸 5年前