Android 每天更新一个庞大的SQLite数据库

Android 每天更新一个庞大的SQLite数据库,android,database,sqlite,Android,Database,Sqlite,好的,我正在做一个项目,数据库将在一个表中容纳大约20000个元素。我有一家商店,销售20000种产品,我想每天更新。每天只更新大约100-200次 我想把整个数据库都做本地的,这样会更快。我想知道这是解决问题的好方法,还是我应该使用其他方法来保存和显示数据?我担心每天下载/更新的更新文件太大 是否可以更新数据库,因为每次更新数据库时,它都从0自行构建 请原谅我的语法错误。Jan您不需要更新数据库。您需要更新数据库内容。让我们使用你的应用程序存储任何类型的标识符(比如int)。您每天都会发布数据

好的,我正在做一个项目,数据库将在一个表中容纳大约20000个元素。我有一家商店,销售20000种产品,我想每天更新。每天只更新大约100-200次

我想把整个数据库都做本地的,这样会更快。我想知道这是解决问题的好方法,还是我应该使用其他方法来保存和显示数据?我担心每天下载/更新的更新文件太大

是否可以更新数据库,因为每次更新数据库时,它都从0自行构建


请原谅我的语法错误。Jan

您不需要更新数据库。您需要更新数据库内容。让我们使用你的应用程序存储任何类型的标识符(比如int)。您每天都会发布数据库更新内容——仅与前一天的内容有所不同。然后,您的应用程序应该检查服务器上数据库的当前id,然后获取并应用db包含的id和最新版本之间的所有差异。或者根据要求构建一个更新文件,了解客户对内容的修订版本和最新版本。如果用户每天使用你的应用程序,那就没什么大不了的

是否可以更新数据库,因为每次更新数据库时,它都从0自行构建

那么你很可能会做错一点。您需要能够以增量方式构建(或者至少您应该始终能够将相同的ID分配给数据库中的相同产品)


或者,如果最终的数据库转储很小(即5MB-50MB-500MB,您可以随意选择)。只需让你的应用程序获取整个数据库文件并替换旧内容,而不必为增量更新浪费时间和精力,因为处理这些更新可能比替换整个数据库花费更多的时间/金钱。

你调查过内容提供商吗?一旦您习惯了在应用程序中使用游标,它将非常有用。它还使您能够围绕URI构建应用程序(例如,通过类似URI的id打开项目)content://product/id). 它还可以很好地与游标加载程序配合使用,并在数据库更改时自动刷新数据适配器。20k元素仍然可以,但是如果每个元素都有图像等,那么数据量会变得非常大。我不知道在每个想使用商店的设备上本地安装这些东西是否有意义。你需要一个在线连接来购买东西,这样你就可以实现一个更好的方式来浏览在线商店。通过这种方式更新数据要简单得多,当用户只想检查单个项目时,不需要更新整个存储。非常感谢,另一件事我想知道,是否有可能在用户不知情的情况下在后台进行更新。假设每天晚上7点,应用程序会检查是否有新版本,是否会更新?是的,没问题。您可以使用AlarmManager在特定时间设置事件,一旦AM唤醒您的应用程序,您就可以生成AsyncTask或IntentService来执行此任务