与iPhone和Web服务双向同步
是的,我知道有几个问题与iPhone和Web DB的同步有关,但没有一个对我有帮助。 我也做了很多谷歌搜索,但我很少找到关于双向同步的信息。也许我只是用错了关键词与iPhone和Web服务双向同步,iphone,database,web-services,synchronization,Iphone,Database,Web Services,Synchronization,是的,我知道有几个问题与iPhone和Web DB的同步有关,但没有一个对我有帮助。 我也做了很多谷歌搜索,但我很少找到关于双向同步的信息。也许我只是用错了关键词 我现在正在构建一个应用程序,我想出了一个主意,在我的应用程序和Web服务中添加两个同步。 我的第一个想法是,这将是可笑的容易,但事实证明,这并不是那么容易。 我发现了一些问题和一些解决方案,但我想听听你们的意见,这些解决方案是否会产生其他问题,或者这些解决方案是好是坏 我的应用程序的想法是帮助我同步笔记,我将在外出时使用iPhone
我现在正在构建一个应用程序,我想出了一个主意,在我的应用程序和Web服务中添加两个同步。 我的第一个想法是,这将是可笑的容易,但事实证明,这并不是那么容易。 我发现了一些问题和一些解决方案,但我想听听你们的意见,这些解决方案是否会产生其他问题,或者这些解决方案是好是坏 我的应用程序的想法是帮助我同步笔记,我将在外出时使用iPhone,在工作中或在家中使用Web应用程序。 这两个端点应该始终同步,因为我不知道在任何时候我将使用哪种设备(iPhone或计算机)来记录、编辑或只是阅读我的笔记 我两边都有什么: 对于我的Web服务(和Web应用程序),我将使用rails,我认为mysql是数据库端的。 在iPhone上,我将使用带有Objective-C包装(FMDB)的SQLite DB。 两者都将通过JSON(在iPhone端使用JSON框架)交换数据 我目前的想法:
UUID
。我认为这对双方都是一个独特的解决方案,不会产生任何重复(至少我希望如此)SHA1
键保存为修订版,我将从date+note data
创建该键。
修订对象还包括以下信息:
- 日期
- 哪个注释对象属于此修订
- 在哪个设备上进行更改
- 发生了什么变化?(通常我不确定是否包含此信息)
所以你需要决定这些是什么样的应用程序。 < P>实际上,我认为在任何类型的双向同步中唯一的问题只有发生冲突时才发生。真正地以任何版本控制系统(svn、cvs、git等)为例。它们更精确地解决此冲突,因为它们分割文件本身,并且检查行冲突,因此文件两个不同部分中的更改不会被视为冲突。 然而,我认为这个解决方案不太可行,因为实施起来很痛苦:) 如果您决定在notes级别处理冲突,而不是在其行中,那么可能在一天结束时,您需要制定一些业务规则,定义在发生导致冲突的更改时会发生什么。 可能性: