2011-03-29 101 views
1

我正在编写两部分的应用程序。桌面应用程序运行在桌面上(可能是一个AIR应用程序)和运行在iPhone上的iPhone应用程序。我是iPhone开发新手。我可以在桌面应用程序和我的iPhone应用程序之间共享SQLite数据库吗

这两个应用程序都可以运行完全相同的sqlite数据库。理想情况下,我想以某种方式将sqlite数据库文件复制到移动应用程序的Documents文件夹中,并在那里使用它,反之则利用iTunes同步。

我到底该怎么做?有没有更好的练习方式来运行手机和桌面应用程序之间的同步?如果有的话,是否有任何如何最好地做到这一点的例子?

我发现的大多数解决方案都假定数据库以独立的格式(如MySQL)存储,并且数据需要以某种方式序列化和反序列化。我只想尝试使用相同的文件并将文件复制过来。

+0

我想这里的另一件事是如上所述我对iPhone的发展很新。我可以重新解释这个问题,因为我如何在两个应用程序之间进行最佳通信?我应该在桌面应用程序中设置一个网络服务器,然后让手机应用程序通过http连接到它?或者我可以通过iTunes访问电话数据库吗?如果是这样,我该怎么做? – Rudi 2011-03-29 16:18:49

回答

3

SQLite是一个单用户数据库。如果你去“复制数据库”路线,那么你可能会丢失数据。如果桌面用户添加了数据并且iOS用户添加了数据,则在复制文件时,某人的数据将会丢失。

您可以实现自己的“同步”算法,以识别数据库之间的更改并保持同步。这可能是一个痛苦,但是一个常见的解决方案,我会推荐。我这样做了桌面/ iOS应用程序。

您可以选择使用数据库服务器,但这需要网络访问才能连接到它。

+0

那么你如何建议我在两个应用程序之间进行通信?宁愿不需要互联网接入。 – Rudi 2011-03-29 15:27:46

+0

正如我所说,我会推荐“同步”方法,但它要求两个设备至少在同一个wifi网络上。如果重要的话,他们将不需要互联网接入。 – 2011-03-29 15:32:04

相关问题