如何维护sqlite本地数据库并在线更新..?

时间:2013-02-05 11:50:41

标签: android database maintenance

我无法按正确的顺序提出问题 让我来实现我想要实现的目标 我正在开发Android应用程序,它使用我放在Asset文件夹中的本地数据库 安装应用程序时,数据库只安装一次 之后我将它从资产文件夹复制到数据文件夹,并完成我所有的readonly查询操作 一切正常。
现在我的问题是数据库会每周更新一次 最好的方法是什么,以便更新整个应用程序以更新数据库 我在想 如果数据库版本更新,那么应用程序应该从互联网下载新数据库(我不知道如何实现)并使用它来进行查询操作。

如果用户在db中插入内容,则可以更新数据库 在我的情况下,用户将给出将在db

中更新的评级和评论

因为这是我的第一个Android应用程序。我完全无能为力。 我想对我的问题得到任何意见。 :)

3 个答案:

答案 0 :(得分:4)

如果您的数据库每周更新一次,那么您可以轻松地将数据库放在网上。您可以使用PHP脚本连接到MySQL服务器。网上有很多资源。 以下是一些:

Connect MySQL with Android

how-to-connect-android-with-php-mysql

这些是基本教程。您可以根据自己的要求更改逻辑。

希望它有所帮助。

答案 1 :(得分:2)

将数据库保存在assets文件夹中将是一件永久的事情。如果您的数据库需要更新它,我建议您使用在线数据库,我的意思是将您的数据库保存在在线服务器中。现在,当您想要执行任何CRUD操作时,可以通过使用php连接到mySQL数据库来完成。希望这有帮助!

答案 2 :(得分:1)

这对我来说就像一个非常奇怪的方法,为什么不从Web加载只有JSON,xml或任何其他格式的更改数据,并根据更改的数据运行db更新?

编辑:在评论中回答您的问题:

我想你应该首先学习一些sql和一些服务语言(我选择的语言是python,但很多人会选择ruby,不要去php ..)然后找到合适的软件架构。使用REST api暴露在线数据库,并使用数据暂时更新本地数据库或直接在应用程序中使用它(将更多工作卸载到服务器,但支付延迟)。您还可以在服务器端使用mongodb(NOSQL数据库)并直接使用REST进行查询。或者只是加载一个包含所需数据的JSON,每周一次,并将其用作一种本地数据库而不是sqlite。没有简短的答案或简短的方法来回答你的问题。您应该学习不同的技术,并确定哪种是特定用例的正确方法。但任何技术堆栈都可能包含以下内容:

  1. 服务器端db(可能还有一些逻辑)
  2. 一种公开db和(REST?websockets?文件下载?)的方法从服务器查询新数据并用新数据更新它。
  3. 安全,授权,身份验证等级别,以保护服务器数据库和逻辑
  4. app local db(sqllite,只是一个包含数据的对象,任何其他方式的本地静态文件),可以非常小,驻留在内存中,可以是整个应用程序。

  5. 应用程序逻辑,视图等,包括应用程序如何查询本地/远程数据库,启动本地和远程数据库之间的连接

  6. 软件测试 - 所以它不会因重构而中断
  7. 本地和远程debuging工具链
  8. 一些代码回购管理(Git现在很热,但总是最好的选择)