2012-04-29 63 views
10

我很想知道誰使用多核心數據模型,爲什麼有什麼好處,我正在開發一個應用程序,我認爲我可以從多個模型中受益,但我不確定其他好處。爲什麼我需要2個或更多核心數據模型?

我的即將到來的應用程序將用於iPad和iPhone的另一個版本,iPad有3個主要內容,iPhone只有一個也在iPad上,所以通過將其隔離到不同的核心數據模型中,可能會保持更改我的兩個應用程序中的該模型將更容易。

雖然我確實有兩個實體,我都需要這兩個實體,所以我可以將它們複製過來或者有一個大型模型。

有什麼建議嗎?

無論如何,這當然不是一種常見情況,那麼其他情況下可能會導致您創建多個Core Data模型?

+0

如何添加mutilple模型類? – harshitgupta

回答

9

有時在不同的商店中保存不同類型的數據是有意義的。例如,像產品目錄一樣工作的應用程序可能有一個商店,它是一個產品數據庫,另一個商店跟蹤用戶的收藏夾,當前訂單和歷史記錄。這使得在不影響用戶數據的情況下更新產品數據庫以及備份用戶數據而不必複製整個產品數據庫相對容易。

另一種使用多個商店的場景是存儲相​​同類型的數據。例如,基於文檔的應用程序通常會爲每個文檔創建一個單獨的存儲 - 商店可能會將作爲該文檔。

更新:我寫了什麼上面的地址使用單獨的,但你問有關使用單獨模型。核心數據實際上可以讓你定義單獨的模型,然後在運行時將它們合併在一起,以便在同一商店(或多個商店)中使用。所以,要清楚的是,模型定義了實體及其之間的關係。 A 商店是使用模型中定義的模式實際保存數據的地方。您可能會將複雜模型分成幾個較小的模型,只是爲了保持簡單,並隨着時間的推移修改模型幫助遷移數據,或者可能使用多個模型並將它們分開,因爲您計劃使用包含不同商店的商店不同類型的數據,如上所述。

+0

通過添加模型A中的收藏夾,您不會引用模型B(產品模型)中的對象嗎? – Daniel

+0

@丹尼爾右 - 你不能在不同的*商店*中創建對象之間的關係,所以你通常會保存足夠的信息(例如產品代碼),你可以找到你想要的對象。查看我的更新,瞭解商店和型號之間的重要區別。如果所討論的對象都將被保存在同一商店中,並且如果您需要在它們之間創建關係,那麼您應該繼續並使用一個模型。 – Caleb

2

我建議只使用1個核心數據模型。如果將它們分開,則無法使用核心數據的許多功能,例如(數據存儲中的對象之間的)關係等。即使您現在看不到此需求,您也可能會隨着想法的增加,以後需要它的應用程序。

對於iPad和iPhone,您仍然可以使用相同的核心數據模型,只是忽略不使用iPhone的部分(直到獲得添加缺失部分的功能請求,您很可能會這樣做)。然後,你會全部設置好,並且已經有了可用的數據。

只有在極端情況下才值得使用單獨的數據模型,例如,如果您要下載只讀的現有數據集等。您可以將只讀數據集與用戶設置/數據等

祝你好運與應用程序!

+0

要指出顯而易見的事實,當您使用多個商店時,您當然可以使用關係;你不能在不同的商店中創建對象之間的關係。我知道這就是你的意思,但如上所述,情況聽起來比實際情況更糟。 – Caleb

+0

謝謝,我已經編輯它更清楚。 –

+0

因此,在我的情況下,我確實有一些實體可以共享,媒體就是其中之一。我有一個MediaVideo,MediaImage和MediaFile,它們支持遠程uris並處理實際文件的本地緩存,如果我理解正確,我想重複使用這些文件並且不能對多個模型執行此操作。 – Daniel

相關問題