2011-05-18 90 views
1

我有一個應用程序使用預先受到數據管理的數據庫來列出事件。該應用程序允許用戶將這些事件保存到他們的收藏夾,方法是在列「isFavorite」上設置'1'。然後,用戶只能查看「收藏」事件列表,搜索所有具有isFavorite = 1的行。如何將數據庫信息保存到android中的文件?

如果事件發生任何變化,或者需要添加更多列表,我必須將這些事件然後將更新推送到完全寫入表格的應用程序,並清除他們的收藏夾。

有沒有什麼辦法可以在升級時保存已設置爲其收藏夾的所有事件的ID列表,然後在加載新數據庫後將該列表中的所有ID設置爲1所以用戶不會失去他們最喜歡的數據?

如果還有其他更好的解決方案來解決這個問題,我真的很感激它,這對我來說是迄今爲止最大的障礙。

回答

0

難道你不能在你的數據庫設計中應付這樣的問題嗎?擁有一個擁有id的用戶收藏夾表。只要這些ID不改變升級不會影響它肯定?

+0

我不太熟悉Android/SQL設計,但是我當前的設置包含預填充的SQL數據庫文件,該文件被加載到資產文件夾中,如果應用程序需要更新,它將刪除活動數據庫並重新導入更新數據庫使用新的文件,這有效地清除了他們在那時會改變的所有用戶數據。我敢肯定,這不是最好的方法,但我還沒有找到任何其他方式來做到這一點。 – Tag 2011-05-18 21:37:49

+0

對 - 爲什麼沒有「用戶」數據庫,您可以使用版本控制功能在需要時進行升級? – diagonalbatman 2011-05-19 12:48:23

1

我想,你有一個SQLiteOpenHelper級?這個類必須擴展,然後提供兩個函數:onCreate(在數據庫被查詢並且它不存在時調用(通常首先創建數據庫))和onUpdate(當數據庫結構應該是查詢時更新)。

onUpdate -method有一個SQLiteDatabase -Object參數,它是你的數據庫。然後你可以查詢你需要的信息,保存它們,然後創建新的數據庫表。之後,您可以將保存的數據重新插入數據庫。

相關問題