客户端有个winform系统,断网的时候吧数据存到本地,联网后再提交到服务器,不知道应该怎么设计,求

2019-07-02 13:45发布

客户端有个winform系统,

断网的时候想把数据存到本地,等联网后再提交到服务器,

我的想法是:

1:服务器一个数据库

2:客户端一个数据库

当检测到断网后,所有提交的数据存到本地,想法是这样想的,但总感觉数据会对不上

不知道具体应该怎么设计,求各位指点

 

我的想法:

本地数据库的每个表我都加一个字段,数据int类型(data_type)

每次添加操作的时候都判断一下是否联网,

如果联网,sql请求服务器链接,将数据存到服务器数据库
如果断网,sql请求本地链接,将数据存到本地数据库,data_type=1

新加一个同步功能按钮,将所有数据库数据状态data_type=1的数据添加到服务器表中,同步过的数据状态data_type更新为2

标签: winform
2条回答
【Aperson】
2楼-- · 2019-07-02 14:05

这是一个很大的工程,某种程度上来说,开发成本甚至于超过你这套系统的开发成本。
如果你想要一个很通用的解决方法的话。需要处理的问题太多了。
如果你还是想开发,挑战一下自己,无所谓成本。
那么,一个个问题列出来,能接受的代价,如何解决这个问题。

我就举几个简单的例子,如果你要考虑断网,

  1. 那么所有的基础资料都必须本地全量存储。
  2. 所有的单据号,都必须设计一个规则来保证唯一性,没办法用服务器规则避免重复。
  3. 查询历史数据的功能可能不可用,除非你本地存储所有服务器数据。
  4. 那要服务器何用,备份数据吗?
  5. 或者当断网是,只有10%的软件功能可用,那就容易一些。
  6. 如果要保证100%可用,基本你这就是个单机系统了。
查看更多
Evening l夕情丶
3楼-- · 2019-07-02 14:12

给每行数据加版本号,如果两地版本号不一致则版本号高的替换掉版本号低的。注意删除数据的处理,可能需要一个如-1这样的特殊版本号或其它标志。

查看更多
登录 后发表回答