Android SQLite双向同步SQLite

19

我需要将我的Android SQLite数据库与我的云服务器数据库同步,在多用户环境下以双向方式进行。

我已经找到了一种解决方案的介绍这里,但我想要阅读更好的解决方案/算法。

2个回答

6

您是否可以将Oracle数据库用作服务器端数据库?

如果可以,您应该考虑使用Oracle Database Lite,它包括全面的同步解决方案,与SQLite和Android兼容,并专为多用户环境而设计。

它支持自动同步、高级冲突解决和多个同步模型。它还支持从中央管理控制台部署和管理应用程序,甚至设备管理。

您可以在这里了解更多信息: http://www.oracle.com/technetwork/database/database-lite/overview/index.html

此外,您可以单击下载选项卡自行尝试。

Eric


谢谢,埃里克。但我正在使用Ubuntu上的PostgreSQL。对于这个项目来说,Oracle太昂贵了。 - Juanin

1
我建议将数据库文件发送到服务器并在服务器端进行合并。然后根据需要将合并的数据库发送回客户端。 您的解决方案将根据冲突解决算法和数据库架构而异。但这里是最简单情况的示例:
sqlite> attach 'client.db3' as ClientDBtoMerge;           
sqlite> insert into TableName select * from ClientDBtoMerge.TableName;
sqlite> detach database ClientDBtoMerge; 

希望你能够修改双向合并的示例。

在单用户环境下可能是备份的解决方案。但对于多用户则不行。无论如何还是感谢。 - Juanin
1
为什么不呢?你可以在服务器上拥有主数据库,并按请求或全部合并。或者你需要数据库之间的实时同步吗?如果是这种情况,你所说的是复制,但这是不可能的,因为你需要所有客户手机100%在线时间。 - cement

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接