我无法按正确的顺序提出问题
让我来实现我想要实现的目标
我正在开发Android应用程序,它使用我放在Asset文件夹中的本地数据库
安装应用程序时,数据库只安装一次
之后我将它从资产文件夹复制到数据文件夹,并完成我所有的readonly查询操作
一切正常。
现在我的问题是数据库会每周更新一次
最好的方法是什么,以便更新整个应用程序以更新数据库
我在想
如果数据库版本更新,那么应用程序应该从互联网下载新数据库(我不知道如何实现)并使用它来进行查询操作。
如果用户在db中插入内容,则可以更新数据库
在我的情况下,用户将给出将在db
因为这是我的第一个Android应用程序。我完全无能为力。 我想对我的问题得到任何意见。 :)
答案 0 :(得分:4)
如果您的数据库每周更新一次,那么您可以轻松地将数据库放在网上。您可以使用PHP脚本连接到MySQL服务器。网上有很多资源。 以下是一些:
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。没有简短的答案或简短的方法来回答你的问题。您应该学习不同的技术,并确定哪种是特定用例的正确方法。但任何技术堆栈都可能包含以下内容:
app local db(sqllite,只是一个包含数据的对象,任何其他方式的本地静态文件),可以非常小,驻留在内存中,可以是整个应用程序。
应用程序逻辑,视图等,包括应用程序如何查询本地/远程数据库,启动本地和远程数据库之间的连接