2

我正在设计一个具有 Mac OS 和 iOS 版本的应用程序,我希望一些数据保持同步。我能想到的最简单的方法是将我的数据存储在每个设备本地的 SQLite 数据库中,将相同的数据库存储在网络服务器上,然后在每个表上运行一些查询以同步本地数据库和远程数据库。

我缺少的这个难题的唯一部分是查询存储在网络服务器上的远程 SQLite 数据库的方法。理想情况下,我想通过 Objective-C 来完成,而不是将数据编组进出像 Python 或 JS 这样的网络语言,并且不将任何其他文件放在网络服务器上,比如服务器端脚本。我真的很喜欢在网络服务器上打开数据库并通过 ObjC 查询它的能力。

这可行吗?有人有想法么?提前致谢...

4

1 回答 1

2

SQLite 基本上是一个将数据库保存在单个文件中的 C 库。由于这种紧凑性,它已成为 iOS 和 Mac (CoreData) 上的存储标准。

因为它将此作为设计目标(相对于多用户、分布式数据库,如 Oragle 或 MySQL),所以您无法通过 Web 访问数据库内容。SQLite 库需要将其作为本地文件打开。

您有以下选择:

  • 在您的服务器上有一个 MySQL DB 和一个 Web API(通过诸如 stackmob 之类的服务或自己编程)
  • 使用 iCloud
  • 使用基于文件的同步形式(例如 Dropbox 或 WebDAV)来继续移动实际的 SQLite 文件
  • 混合形式:将事务放入您在每个设备上同步和前滚的文件中

同步很难。我会选择 iCloud。

于 2013-01-11T06:38:18.753 回答