代码之家  ›  专栏  ›  技术社区  ›  Wookai

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

  •  4
  • Wookai  · 技术社区  · 15 年前

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

    最简单的方法是将iPhone应用程序简单地构建为web应用程序的接口,即每个操作都需要连接到web。不过,我希望iPhone应用程序有自己的“离线”版本的数据库。这不仅可以让用户离线工作,还可以提供更好的体验,因为一切都在本地意味着一个更快、更具响应性的应用程序。

    我会通过使用时间戳和保留最新版本来处理冲突(我已经使用了软删除,即当用户删除一条记录时,我只是设置一个标志),但我还没有完全弄清楚如何处理插入。实际上,如果用户在脱机(iPhone应用程序)和联机(web应用程序)数据库中都插入新项,则会出现主键冲突(我的所有表都有一个以auto increment作为主键的整数字段)。我怎么处理这个问题?

    我在考虑使用两列主键,一个是自动递增的整数,第二个是特定于“设备”的。这样,通过web应用程序添加的新记录将具有ID 1-web、2-web等,而通过iPhone应用程序1-iPhone、2-iPhone等创建的记录。。。这将允许合并两个数据库而不发生冲突。你觉得这个主意怎么样?

    1 回复  |  直到 14 年前
        1
  •  5
  •   Marcelo Cantos    15 年前

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

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

    推荐文章