2012-10-03 51 views
0

我有一個服務器API返回我同樣的項目對象中的一個實體,在3個不同的端點:核心數據模型設計爲具有不同的含義

  • /新/
  • /推薦/
  • /庫/

相同的項目可能會出現在新的和推薦的列表中。

我需要以某種方式跟蹤哪些項目來自哪個端點,以便將它們顯示爲3個不同的屏幕,同時在數據庫中維護一個大型項目池。什麼會是一個很好的模型?

回答

0

你可以做一些超規範化,但是如果你認爲這些只是三個分類,你可以將它們作爲實體的布爾字段添加,並根據它來自哪個端點來標記每個字段。這裏有一些步驟:從每個端點

  • 查找由實體的服務器ID在覈心數據的每個項目

    1. 下載項目。如果實體尚不在覈心數據存在,創建它
    2. 集的實體領域與從服務器記錄
    3. 得到了什麼。如果它來自一個「新的」端點,設置「新」布爾領域是。如果從「推薦」,設置「推薦」布爾字段設置爲yes等
    4. 保存實體
    5. 當你執行你的每一個你的意見獲取,只需將您的謂詞類似於下列之一:

      [NSPredicate predicateWithFormat:@「new = 1」];

      [NSPredicate predicateWithFormat:@「recommended = 1」];

  • +0

    謝謝。規範化的想法是什麼? –

    +0

    爲了規範化,您創建了另一個名爲「categories」的實體,併爲每個實體添加一個新行 - 在您的情況下爲「new」,「recommended」或「library」。然後,未來,您可以添加其他人,比如說,如果您還有另一個終點,比如「精選」。然後,您在主要實體和此類別實體之間的核心數據中創建關係。這種關係可能是多對多的,因爲你需要每個項目一個記錄。它將作爲一個分組機制。如果你的類別是靜態的,規範化是矯枉過正的,但是,如果它們可能改變,規範化它們是有意義的。 –