これは、コア データ内の NSManagedObjects 間の関係を整理する最善の方法に関する概念的な質問です。
循環依存関係があるように見える場合、Core Data 内のエンティティをどのように整理しますか?
たとえば、ソーシャル レシピ アプリを作成しているとします。このアプリでは、誰が各レシピを作っているか、誰が各食材を購入しているかに基づいて食事を整理できます。また、各レシピは別の人物によって作成されています。したがって、次の NSManagedObjects とそれに続くそれぞれの属性と関係を提案します。
Chef
>>= uniqueID (文字列)、ユーザー名 (文字列)、スキル (文字列Recipe
>>)Ingredient
Recipe= uniqueTitle (文字列)、authorID (文字列)
>>成分 = (to-many)Ingredient
Ingredient= 名前 (文字列)、カロリー (整数 64)
質問
[_] 複数Chefの が同じレシピで作業している場合、同じRecipeオブジェクトの複数のコピーが Core Data に保存され、それぞれが別の に属しているということChefですか? もしそうなら、それは大丈夫ですか?そうでない場合、それ自体が を介して多くのオブジェクトを指すことができる場合Recipe、Core Data で単一のオブジェクトを作成し、複数Chefの がそれを指すようにするにはどうすればよいですか?ChefReciperecipesToMake
[_] レシピが与えられた場合、どのChefが割り当てられているかを確認するにはどうすればよいですか? 特定の属性を持つオブジェクトをChef指す Core Data 内のオブジェクトを取得しますか?RecipeuniqueTitle
[_]Chefオブジェクトは多くのオブジェクトを指すことができるので、それぞれの作成者を作成者の uniqueID を含む属性としてRecipe保存するのは正しいですか? 最初はto-oneからリレーションシップを作成することを考えていましたが、そうするととオブジェクトの間にさらに別の循環依存関係が作成されます。RecipeRecipeRecipeChefChefRecipe
[_] もう一度言いますが、を介して多くのオブジェクトを指すことができ、を介して多くのオブジェクトを指すChefことができる場合、CoreDataには同じオブジェクトの複数のコピーが存在するのでしょうか?IngredientingredientsToBuyRecipeIngredientingredientsIngredient
[_]Recipeオブジェクトに任意の数の作成者を許可する場合、どのように実装しますか? オブジェクトとの関係を使用するとChef、循環依存関係が作成されるように見えますが、 に接続された属性を使用すると、オブジェクトChef uniqueIDごとの作成者の最大数を事前に指定する必要があるようですRecipe。