這是關於如何最好地組織核心數據中的NSManagedObject之間的關係的概念性問題。如何組織具有循環依賴關係的核心數據實體?
當看起來存在循環依賴關係時,如何組織核心數據中的實體?
例如,假設我正在製作社交食譜應用程序。這個應用程序可以讓你根據誰製作每個食譜以及誰在購買每種食材來組織餐食。另外,每個配方由不同的人創建。因而我提出以下NSManagedObjects隨後由它們各自的屬性和關係:
Chef
= UNIQUEID(字符串),用戶名(字符串),技能(字符串)
>>
recipesToMake =(一對多)Recipe
>>
ingredientsToBuy = (一對多)Ingredient
Recipe
= uniqueTitle(字符串),AUTHORID(字符串)
>>
成分=(一對多)Ingredient
Ingredient
=名稱(字符串),卡路里(整數64)
質詢
[_]如果我有多個Chef
「s的同樣配方的工作,是否意味着相同的多個副本對象被存儲在覈心數據中,每個都屬於一個獨立的Chef
?如果是這樣,那還好嗎?如果不是,我怎樣才能在Core Data中製作一個Recipe
對象,並有多個Chef
指向它,Chef
本身可以通過recipesToMake
指向多個Recipe
對象?
[_]如果給出配方,我將如何檢查哪個Chef
被分配給它? Core Data中的Chef
對象是否會指向具有給定的uniqueTitle
屬性的Recipe
對象?
[_]由於Chef
對象可以指向一對多Recipe
目的,它是正確的從而向每個Recipe
的作者存儲爲在含有作者的UNIQUEID Recipe
屬性?我最初會想到創建一個從Recipe
到一個Chef
的關係,但這會在Chef
和Recipe
對象之間創建另一個循環依賴關係。
[_]再次,如果Chef
可以通過ingredientsToBuy
指出,許多Ingredient
對象和Recipe
可以通過ingredients
指出,許多Ingredient
對象,也很多會出現在CoreData相同Ingredient
對象的多個副本?
[_]如果我允許Recipe
對象擁有任意數量的作者,我將如何去實現它?使用與Chef
對象的關係似乎會創建循環依賴關係,而使用連接到Chef
uniqueID
的屬性似乎需要預先指定每個Recipe
對象的最大作者數。
不錯的問題! 1年前,我試圖做同樣的事情,資源<->項目。並沒有做到,然後我解決了這個項目,而不使用核心數據。後來我重新用Project的重複來解決這個項目。而且我知道這不是一個好的方法。即使我正在等待答案....感謝張貼這個問題:) –