2011-10-25 78 views
3

一直試圖瞭解如何在Xcode 4.2中建立一個循環的核心 - 數據多對多關係。在SQL中,我將使用映射表並自定義我的SQL表達式來爲我提供正確的數據,但在Core數據中,我似乎無法理解如何讓他正常工作。 我有3個實體它們都彼此相關:CoreData:如何模擬循環多對多關係

  • 角色

我的鏈接是:

  • 部門可以擁有多個角色
  • 部門可以有多個人員
  • 一個角色可以出現在很多部門
  • 一個角色可以有一個分配給它的許多人
  • 一個人可以屬於多個部門的衆多角色
  • 一個人可以是部分

使用核心數據對此進行建模的最佳方式是什麼?它們之間的關係最適合?你會使用這些3之間的映射表,還是隻分配正確的關係?

任何幫助,將不勝感激,因爲我似乎不能算出這個....

編輯: 非常感謝你的快速反饋。 不幸的是我不能上傳我的數據模型,因爲我是這個網站的新手而不允許發佈任何圖片。

要讀我目前只使用謂詞是這樣的數據:

predicate = [NSPredicate predicateWithFormat:@"personPartOfRoles == %@", myRole]; 

似乎我無法弄清楚是如何保持這個對象圖,從角色中添加或刪除的人。我假設我需要加載內存中的整個圖形,並以某種方式找到正確的實體映射英寸

回答

3

只需在您的實體中分配正確的關係。

如果你打算使用核心數據,重要的是忽略你存儲在SQLite的事實。存儲只是一個幕後實現細節(因爲coredata可以存儲在XML或內存中),您可以忘記它。

+0

謝謝你的快速評論。我上面更新了我的帖子。當我有多對多的關係時,我仍然不確定如何建模關係。 –

+0

Apple的核心數據指南中有一節專門討論了多對多關係,實際上是談論類似實體的連接表可能適合的情況。如果你還沒有閱讀,我強烈建議。 – sosborn

3

部< < --- >>角色(角色部門)
部< < --- >>人(部門人員)
角色< < - >>人物(角色的人)

使每個關係都有相反的關係。

請記住,核心數據是一個對象圖,可以將保存到數據庫。把它當作一個對象圖來對待。