数据库 – 通过http和json同步2个sqlite表的最好方法是什么?

我有一个相当简单的同步问题.我有一个大约10列的表,我想在3个不同的客户端上的一个sqlite文件之间保持同步:一个 Iphone客户端,一个浏览器客户端和一个Ruby on Rails客户端.所以我需要一个简单的系统解决方案,它将适用于所有3,即我可以轻松地在 Javascript,Objective C和Ruby中实现它,并且它可以通过HTTP工作.我已经看过其他同步解决方案的各种组件,如git中的一些,Google齿轮社区中的一些教程,以及一个名为acts_as_replica的rails插件.我的天真的方法是简单地在数据库中创建一个最后同步的时间戳,然后创建所有删除的更改日志. (我不允许更新表中的条目).然后,我可以检索自上次时间戳以来的所有新条目,然后与删除文件相结合,并通过http在3个解决方案之间发送一个更改日志作为json.

我应该考虑使用SHA1哈希或每个条目的UUID还是最后同步的时间戳足够?如何确保没有重复条目?我可以遵循一个更简单的算法吗?

解决方法

我假设改变很可能是最后的.我不知道插入和更新的性质,但这是我的想法;

>我将SHA1(或MD5,在这种情况下无关紧要)当前月份和前几个月.与这些指纹相比,差异是一个快速方法. (我今天离开了)
>如果前几个月有差异;

>如果一个月的音量太大,我们可以分割一个月,只需生成每日指纹,而不是比较整个月.
>否则,我们可以按照我们对待日常变化的方式来对待月度变化.

>在发现更改发生在哪里之后,主副本将发送该时间段的所有唯一身份验证码的列表. (始终发送今天的信息)
>奴隶然后删除必须被删除内容,编译要插入的id列表.
>主人只发送那些记录(全部).

时间类别(日,月)可以根据数据量进行调整.

当然这是一个天真简单的算法.如果我正在处理敏感/关键数据,我会寻找一个transactional算法.

相关文章

(一)日志传送架构 (1.1)相关服务器 主服务器 :用于生产的服务器,上面运行这生产SQL Server数据库...
(一)事故背景 最近在SQL Server 2012生产数据库上配置完事物复制(发布订阅)后,生产数据库业务出现了...
(一)测试目的 目前公司使用的SQL SERVER 2012高可用环境为主备模式,其中主库可执行读写操作,备库既...
(一)背景个人在使用sql server时,用到了sql server的发布订阅来做主从同步,类似MySQL的异步复制。在...
UNION和OR谓词 找出 product 和 product2 中售价高于 500 的商品的基本信息. select * from product wh...
datawhale组队学习task03