【发布时间】:2008-11-29 03:23:25
【问题描述】:
我有一个相当简单的同步问题。我有一个包含大约 10 列的表,我想在 3 个不同客户端上的 sqlite 文件之间保持同步:一个 Iphone 客户端、一个浏览器客户端和一个 Ruby on Rails 客户端。所以我需要一个适用于所有 3 个的简单 sycing 解决方案,即我可以轻松地在 Javascript、Objective C 和 Ruby 中实现它,并且它可以与 JSON over HTTP 一起使用。我查看了其他同步解决方案的各种组件,例如 git 中的那个,一些来自 Google gears 社区的教程,以及一个名为acts_as_replica 的rails 插件。我天真的方法是简单地在数据库中创建一个最后同步的时间戳,然后创建一个所有删除的变更日志。 (我不允许更新表中的条目)。然后我可以检索自上一个时间戳以来的所有新条目,然后与删除相结合,并在 3 个解决方案之间通过 http 将更改日志作为 json 发送。
我应该考虑使用 SHA1 哈希或每个条目的 UUID 还是最后同步的时间戳就足够了?如何确保没有重复条目?有没有更简单的算法可以遵循?
【问题讨论】:
标签: database json sqlite synchronization