1

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

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

因为这是我的第一个 android 应用程序。我完全不知道如何实现它。我想就我的问题获得任何意见。:)

4

3 回答 3

4

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

将 MySQL 与 Android 连接

如何连接-android-with-php-mysql

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

希望能帮助到你。

于 2013-02-08T04:28:54.237 回答
2

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

于 2013-02-05T12:00:20.377 回答
1

这在我看来是一种非常奇怪的方法,为什么不从 Web 仅加载 JSON、xml 或任何其他格式的更改数据并根据更改的数据运行数据库更新?

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

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

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

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

  6. 软件测试——所以它不会在重构时中断
  7. 本地和远程调试工具链
  8. 一些代码仓库管理(Git 现在很热,但始终是最佳选择)
于 2013-02-05T12:01:39.813 回答