6

我正在尝试创建一个从服务器接收 Sqlite 数据库以供离线使用但云同步的应用程序。服务器有一个 postgres 数据库,其中包含来自许多客户端的信息。

1)删除sql数据库并从查询中创建一个新数据库更好,还是尝试同步和更新现有的单独sqlite文件(或其他更好的解决方案)。每个客户每天都会刷新几次。

2)如果是后者,你能给我任何关于我如何做到这一点的资源吗?

我对数据库应用程序很陌生,所以请原谅我的无知,让我知道是否有任何方法可以澄清。

4

2 回答 2

3

这里没有一种适合所有方法的方法。在构建解决方案之前,您需要仔细考虑需要做什么、要复制什么、涉及多少数据以及您的写入模型是什么。在此过程中,您必须决定如何处理写入冲突等等。

一般来说,我要说的一件事是这种同步最适合仅附加写入模型(即插入、不删除、不更新),一种方法是记录需要进行的更改并复制这些更改.

然而,在最好的日子和最好的工具可用的情况下,主-主复制是很困难的。在具有非常不同功能的数据库之间跳转会引入许多额外的问题。你有一份大工作。

于 2013-11-09T02:37:28.437 回答
2

这是一个开源产品,声称可以解决包括 Postgres 在内的许多数据库类型的问题。我在这家公司没有从属关系或商业利益。

如果您能够并且愿意走出关系数据库以使用对象存储,您可能想看看CouchDbPouchDb,它们使用基于 MVCC 的复制协议,旨在支持多主复制,包括冲突解决。在幕后,PouchDb 使用 Sqlite、IndexDb、本地存储或远程 CouchBb 实例的适配器来持久化客户端数据。它会为给定的桌面或移动浏览器自动选择最佳客户端存储选项。Sqlite 引擎可以是 WebSQL 或 Cordova Sqlite 插件。

于 2017-05-08T04:29:44.487 回答