移动应用与云之间的数据同步

时间:2014-12-19 11:20:39

标签: android ios mysql synchronization cloud

好吧,我在iOS和Android上构建应用程序,这两个应用程序都需要与云数据库MySQL同步。这两个应用程序都脱机工作,因此我需要所有插入和更新功能。删除可能不会被使用,但我仍然想知道。

嗯,我在这里看到的是解决方案或想法或算法需要做的事情。

我已将CreatedOn和LastSync保留为每个表的时间戳列。

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

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

我知道它已经过了两年了,但我一直都在做同样的事情(Android应用程序与web api和postgresql同步)

到目前为止我做了什么(仍在研究它是否是最好的方式,这就是我发现这个问题的方法)是我保留一个last_update字段,其中包含数据last_updated和更改字段的时间戳使用布尔值来判断数据是否被更改(通过设备上的用户操作)

所以当我执行同步时:

  • 我首先将数据库复制到备份(如果出现问题)
  • 我发送所有标记为已更改的行(服务器处理冲突)
  • 然后删除它们
  • 之后我找到max(last_update)值,
  • 我从中减去一分钟
  • 然后请求在该值之后更新的所有行(这也将包括我发送的数据,因为除非出现问题,否则将行设置为在使用last_update之前更改最后一个未改变的行)

这可能导致一些重复数据被转移(特别是如果你经常进行大量更改)但在我的情况下这是一种罕见的现象