【问题标题】:Having ordered SQlite database (based in XML feed)已订购 SQlite 数据库(基于 XML 提要)
【发布时间】:2010-07-01 11:57:28
【问题描述】:

我正在尝试开发我的第一个 android 应用程序,但以前从未真正使用过数据库。无论如何,我需要定期(比如每天一次)根据从网络上检索到的 XML 文件来填充和更新数据库。

考虑一下 iv 已经遇到了一些问题...基本上我需要按日期显示有关艺术家和事件的信息。为此,我计划通过 sqlite 数据库支持视图,该数据库已经按日期对每一行进行了排序。所以这些列将是“日期”、“艺术家”、“地点”等,我想我需要一个“行 ID”列和一个主键?

现在我的想法是进行插入排序,这样每当我向数据库中插入一个条目时,它就会井井有条并且看起来很容易实现。我的 DB Helper 类基于此处的记事本示例 http://developer.android.com/resources/tutorials/notepad/notepad-ex1.html (NotesDbAdapter)。但是他们插入新项目的方式是使用 ContentValues,它只是作为数据库中的下一个项目插入。我将如何在中间某处插入项目以便按日期排序?还是让数据库无序并在需要时在数据库外部对其进行排序更好?

基本上我还想每天一次从说 last.fm 下载 XML 文件,然后将任何新条目放入数据库中……最好的方法是什么?重建数据库是否可行?

谢谢

【问题讨论】:

    标签: java android xml database sqlite


    【解决方案1】:

    我绝对不会担心插入顺序。您可以将 orderBy 字段添加到 query,以便数据库对结果进行排序。

    Cursor c = db.query("CONCERTS", new String[]{"venue", "artist", "date"},
         null, null, null, null, "date"/*orderBy*/);
    

    还有。这些文件有多大?每次都下载xml可能更容易,不用担心存储在数据库中。

    【讨论】:

    • 啊,我明白了,谢谢! xml 文件可能会在 500-1000 行左右...我应该每次都下载 xml 吗?没有数据库可能会出现问题的事情: - 当用户“喜欢”一个事件等并且我希望它是持久的时,我不需要使用数据库吗? :S - 如果我使用多个 xml 文件? (即来自两个不同的网站)并且只想显示独特的,什么不是?
    • 如果他们喜欢某件事,您是否会将其发送回服务器,以便其他用户可以看到其他人喜欢某个活动?如果您想以这种方式共享数据,我认为将数据持久保存在数据库中并没有真正的好处。
    • 首先我认为我不会担心将任何数据发送回服务器(即使用 last.fm 检索有关音乐会的数据)并让用户“喜欢”或“参加”音乐会并在他们的日历(和应用程序)或其他东西中注明。然后稍后进行完整的 last.fm 集成,以便将数据发送回服务器......所以我想我不应该担心数据库
    • 什么是解析android上的xml的好方法(对于菜鸟)?谢谢!
    • 这完全是另一个问题,但如果 last.fm 支持 json 作为格式,你应该使用它,因为它更容易处理。
    猜你喜欢
    • 2013-11-19
    • 2014-01-23
    • 2010-09-05
    • 2012-07-29
    • 2019-07-18
    • 1970-01-01
    • 2016-05-06
    • 1970-01-01
    • 2019-03-08
    相关资源
    最近更新 更多