2014-12-19 96 views
2

那么,我正在iOS和Android上构建一个应用程序,并且这两个应用程序都需要与云数据库MySQL同步。这两个应用程序都可以脱机工作,所以我需要所有插入和更新功能。删除可能不会被使用,但我仍然想知道。移动应用程序和云之间的数据同步

那么,我在这里看到的是解决方案或想法或算法,需要做到这一点。

我在每张表上保留了CreatedOn和LastSync作为时间戳列。

现在的问题是我应该每次总是检查所有的行和所有的列?

我认为我应该保留所有表格上的ModifiedOn列,并使用LastSync检查每个设备ID。你们有什么建议?

回答

0

也许这不是您正在等待的答案,但是在我正在开展的项目中,我们正在使用Azure移动服务。有一个Android和iOS SDK在他们实现脱机数据库和Azure之间的同步(就像在Git中你可以调用推拉方法一样)。

有一些限制(TableStorage是一个有限的MSSQL存储),但你应该检查出来。

+0

当然,如果我打算使用Azure,那么我会努力去做。 – 2014-12-19 11:49:33

0

我知道这是两年左右过期,但我一直在做(与Web API和PostgreSQL同步Android应用程序)一样的东西

我做什么到现在(仍在研究,如果这是最好的方式,这是我如何发现这个问题)是我保留last_update字段,时间戳记的数据是last_updated,以及一个带有布尔值的更改字段,用于确定数据是否被更改(通过设备上的用户操作)

所以当我执行同步时:

  • 我先数据库复制到备份(如果有问题)
  • 我把所有的改变被标记(服务器处理冲突)的行
  • 然后之后,我觉得最大删除它们
  • (LAST_UPDATE )的值,
  • 我从中减去一分钟
  • 然后请求所有在该值后更新的行(这也将包含我发送的数据,因为没有办法,除非出现问题,一行被设置为在最后一个未被更改的行之前被last_update更改)

这可能会导致一些重复的数据被转移(尤其是如果你经常发生很多变化),但在我的情况下,这是一种罕见的现象

相关问题