2010-07-01 47 views
0

我正在開發我的第一個android應用程序,並且從未真正使用過數據庫。無論如何,我需要基於從網上檢索的XML文件(例如每天一次)來填充和更新數據庫。訂購了SQlite數據庫(基於XML提要)

想一想它已經遇到了一些問題......基本上我需要顯示按日期排序的藝術家和事件的信息。爲此,我計劃通過sqlite數據庫來支持視圖,該數據庫中每行都按日期排序。所以列將是「日期」,「藝術家」,「地點」等,我想我需要一個「行ID」列以及主鍵?

現在我的想法是做一個插入排序,以便每當我插入一個條目入數據庫它將按順序,看起來相當簡單的實現。我從記事本示例http://developer.android.com/resources/tutorials/notepad/notepad-ex1.html(NotesDbAdapter)中找到我的DB助手類。但是他們插入新項目的方式是使用ContentValues,它只是作爲數據庫中的下一個項目插入。我如何將項目插入中間的某個位置,以便按日期排序?還是讓數據庫無序並且在需要時將它命令到數據庫之外更好?

另外基本上我想從last.fm下載XML文件,每天一次,然後把任何新的條目放入數據庫...什麼是最好的方法來做到這一點?重建數據庫是否應該走?

謝謝

回答

1

我絕對不會擔心插入順序。您可以將orderBy字段添加到query,以便數據庫對結果進行排序。

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

另外。這些文件有多大?只要每次下載xml都可以更容易,而不用擔心存儲在數據庫中。

+0

ahhh我看到謝謝! 而xml文件可能會在500-1000行左右......我應該每次下載xml嗎? 沒有數據庫的情況下可能會出現的問題: - 當用戶「喜歡」某個事件等,並且我希望這是持久性的時候不需要使用數據庫嗎? :S - 如果我使用多個xml文件? (即來自兩個不同的網站),只想顯示唯一的,不是什麼? – Kman 2010-07-01 12:35:24

+0

如果他們喜歡什麼東西,你會將它發送回服務器,以便其他用戶可以看到其他用戶喜歡某個事件?如果你想以這種方式共享數據,我認爲在數據庫中保存數據沒有真正的好處。 – 2010-07-01 12:37:12

+0

首先,我想我不會擔心發送任何數據回服務器(這只是使用last.fm檢索音樂會的數據),並讓用戶'喜歡'或'參加'音樂會,並有他們的日曆(和應用程序)或其他東西。然後後來有完整的last.fm集成,以便數據被髮回服務器......所以我想我不應該擔心數據庫 – Kman 2010-07-01 13:17:40