同步SQLite文件(通过将更改与变更集合并?)

时间:2018-05-19 11:35:38

标签: sqlite synchronization

我正在开发一个将数据存储在sqlite文件中的应用程序。现在我想让这个应用程序成为多客户端,这样用户就可以在不同的设备上使用相同的数据(而不是同时)。我无法提出专用的网络服务来同步不同设备上的应用程序数据,因此我将使用Dropbox API等内容来上传/下载changesets来同步sqlite文件。

但是,在阅读完文档后,我不确定这是否符合我的预期。考虑用户在设备A上添加记录时的情况,并自动为该记录分配整数主键(rowid)。然后,用户切换到设备B,并在同步之前添加不同的记录,但是可能会为其分配相同的主键。因为,正如sqlite文档所述,更改集通过比较主键来工作,这将导致冲突(充其量,用户将能够选择接受哪个版本的记录)。

嗯,这看起来不像数据合并。当然,如果用户更新相同的记录,可能会发生冲突,但如果用户导入在不同的sqlite文件上分配了相同主键的不同记录,那么看起来,变更集不是一个选项。

如果是这样,并且我没有对sqlite文档的误解,那么在不开发专门的Web服务器的情况下同步应用数据的最佳方法是什么?作为另一种选择,我考虑使用数据库记录的唯一标识符,并使用比如JSON格式同步数据(例如,再次通过Dropbox API)。

0 个答案:

没有答案