2015-05-07 55 views
-3

我目前擁有一個ContentProvider,用於從遠程服務器獲取資源列表。數據存儲在SQLite數據庫中。在Android中存儲列表的最佳方式

從這個列表中,用戶將能夠添加幾個項目到他們的收藏夾。他們的應用程序將不得不跟蹤列表中的ID。跟蹤收藏夾列表的最佳方式是什麼?

我想到幾個......

  1. 有一個標誌SQLite的表,如果它被收藏,以紀念。
  2. 使用共享偏好使用它的另一個SQLite數據庫

回答

1

在我看來第一個具有SQLite表一個標誌,標誌着連續被評爲最喜歡的就是最好的選擇

  • 商店序列化ID列表和存儲。通過這種方法,您可以從數據庫中讀取一次數據,並知道哪些數據是最喜歡的。

  • 4

    這取決於。

    我會推薦變種1,因爲它會保持你的數據結構簡單,你只需添加一個標誌。 (這將需要你改變表,如果它已經生活?)

    我已經在我創建的應用程序也做了同樣的,它的工作速度非常快。你也有信息,如果它是在同一個模型出演這樣就不需要任何額外的邏輯,如果你需要這些信息來顯示它的細節視圖內


    變2是一個非常糟糕的主意,它會很慢。 (與sqlite解決方案相比較慢)


    變體3.您不需要另一個SQLite數據庫。您將不得不添加一個引用主數據模型的新模型。但這隻有在你有1:n關係時纔有意義

    0

    我認爲你的第一個想法是最好的,因爲你不必再次匹配數據。

    1

    你說你需要跟蹤優惠的列表嗎?我假設這意味着你想要相當經常地使用優惠券列表。

    每當您想要閱讀優惠券列表時,都需要遍歷整個表格,這對我來說是有意義的,即讓另一個表格包含標記爲優選的所有ID。你可以經常花費很少的錢讀這張表。

    此表中的ID將用作鏈接到主表的外鍵。

    +0

    我喜歡這個想法,但是這對ContentProviders是如何工作的?我需要一些方法將表格「連接」在一起 - 這是我的主要問題。 – mushroom

    +0

    你需要創建一個單獨的「DBHelper」類來處理所有的數據庫內容。通過這個,執行一個SQL JOIN查詢來... well..join表連在一起。 – user2818782