首页| 论坛| 消息

标题:请教一个关于数据库同步的问题
作者:clickto
日期:2019-10-24 20:53
内容:

具体情况如下:
1、客户端使用sqlite,服务器使用mysql,两者的表结构完全一致,多客户端;
2、用户按权限分级,数据按组别分组,用户有一般用户和管理用户,一般用户维护自己权限所见的组别数据,本地产生的数据需要同步到远程,其它用户可见,可操作;
3、审定后的数据不允许删除;
4、网络暂时不通时,客户数据保存在本地,待网络恢复后,要能够同步到服务器;
5、现在的结构是,所有组别的数据分别放同一张表里。管理用户要能看到所有客户端的数据,同时只有他能审定数据。数据量挺大的。
请问这种情况要怎么进行数据同步?要保证本地新增、删除的数据都要同步到服务器,同时其它客户端能够同步实现这种数据变化体现?
很让人头疼的问题,请各位大侠不吝赐教!!!


#1 [圣域天子 10-25 14:45]
试试ETL工具
#2 [uidab 10-25 14:47]
倒也不复杂,只是同步策略的问题。确保有字段能表示数据是否同步过。然后和服务端约定一个同步机制。
#3 回 圣域天子 的帖子 [clickto 10-25 21:29]
圣域天子:试试ETL工具 (2019-10-25 14:45) 
如果能用工具那就好办了。现在领导要求的是Qt内部编程,在客户端完成所有工作。
#4 回 uidab 的帖子 [clickto 10-25 21:35]
uidab:倒也不复杂,只是同步策略的问题。确保有字段能表示数据是否同步过。然后和服务端约定一个同步机制。 (2019-10-25 14:47) 
服务器没有程序,仅仅是一个购买的mysql云数据库而已。要求在客户端内编程完成所有逻辑和操作。除了增量数据,还有修改的数据、删除的数据。比如,甲在他本地修改、删除了一些数据,要同步后,其它能看到该类数据的用户也能同步的体现这些变化,头大。
#5 [clickto 10-25 21:52]
我现在的做法是
上传:客户端发起同步时,先删除远程允许删除的,再建立本地数据库副本,删除副本中和远程一致的,然后剩下的就是要同步的。但是,如果用Sql语句,数据量太大,光sql语句就好几兆到十来兆,数据库执行超时,如果用QSqlTableModel配合QSqlRecord进行同步,巨慢,1000条记录就要同步十来分钟,不可接受的。。。

<< 1 2 >> (1/2)

回复 发表
主题 版块