iPhone应用程序和Web应用程序之间的双向同步

Woo*_*kai 4 database iphone data-synchronization

我有一个依赖于MySQL数据库的Web应用程序,我正在考虑构建一个iPhone应用程序.此应用程序将允许用户在Web应用程序上浏览/插入/更新/删除其帐户上的数据.

最简单的方法是将iPhone应用程序简单地构建为Web应用程序的界面,即每个操作都需要连接到Web.但是,我希望iPhone应用程序拥有自己的"离线"版本的数据库.这不仅允许用户离线工作,而且还可以提供更好的体验,因为在本地拥有一切意味着更快,响应更快的应用程序.

我会通过使用时间戳和保持最新的版本(我已经使用了软删除,即当用户删除我只是设置一个标志的记录)处理冲突,但我还没有完全想通了如何处理插入.事实上,如果用户在两个下线(iPhone应用程序)和网络(Web应用程序)的数据库中插入新的项目,会有一个主键冲突(我的所有表有自动递增的主键整数字段).我该如何处理这个问题?

我想的是有一个双列主键,一个是自动递增的整数,第二个是特定于"设备".这样,通过网络应用程序添加的新记录将具有ID 1-web,2-web等,以及通过iPhone应用程序1-iphone,2-iphone等创建的...这将允许合并两者数据库没有冲突.你怎么看待这个想法?

Mar*_*tos 5

到目前为止最简单的解决方案是使用UUID.

一个不太优雅的解决方案是让iPhone ID占据密钥空间的已定义子集.例如,使用64位密钥,可以为每个iPhone分配最高20位的特定模式.