Objective c 如何组织具有循环依赖关系的核心数据实体?
这是一个关于如何最好地组织核心数据中NSManagedObject之间关系的概念性问题 当存在循环依赖关系时,如何组织核心数据中的实体? 例如,假设我正在做一个社交食谱应用程序。此应用程序允许您根据谁制作每个食谱以及谁购买每个配料来组织膳食。此外,每个食谱都是由不同的人制作的。因此,我提出了以下NSManagedObjects及其各自的属性和关系:Objective c 如何组织具有循环依赖关系的核心数据实体?,objective-c,ios,cocoa-touch,core-data,circular-dependency,Objective C,Ios,Cocoa Touch,Core Data,Circular Dependency,这是一个关于如何最好地组织核心数据中NSManagedObject之间关系的概念性问题 当存在循环依赖关系时,如何组织核心数据中的实体? 例如,假设我正在做一个社交食谱应用程序。此应用程序允许您根据谁制作每个食谱以及谁购买每个配料来组织膳食。此外,每个食谱都是由不同的人制作的。因此,我提出了以下NSManagedObjects及其各自的属性和关系: Chef=uniqueID(字符串)、用户名(字符串)、技能(字符串) >recipetomake=(对许多人)Recipe >ingredient
Chef
=uniqueID(字符串)、用户名(字符串)、技能(字符串)>
recipetomake=(对许多人)Recipe
>
ingredientsToBuy=(对许多人)成分
Recipe
=唯一标题(字符串)、作者(字符串)>
成分=(对许多人)成分
成分
=名称(字符串),卡路里(整数64)
问题
如果我有多个Chef
处理同一配方,这是否意味着同一recipe
对象的多个副本存储在核心数据中,每个副本都属于一个单独的Chef
?如果是,可以吗?如果没有,当Chef
本身可以通过recipeTomake
指向多个Recipe
对象时,如何在核心数据中创建一个Recipe
对象并让多个Chef
指向它
[[uuu]如果给我一份菜谱,我如何检查分配给它的是哪个厨师
?我会在核心数据中提取那些指向具有给定uniqueTitle
属性的配方
对象的Chef
对象吗
[\uuz]由于Chef
对象可以指向许多Recipe
对象,因此将每个Recipe
的作者存储为包含作者唯一ID的Recipe
上的属性是否正确?我最初会想创建一个从Recipe
到一个Chef
的关系,但这会在Chef
和Recipe
对象之间创建另一个循环依赖关系
再次,如果Chef
可以通过ingredientsToBuy
指向许多配料
对象,并且配方
可以通过配料
指向许多配料
对象,那么在CoreData中是否会有相同的配料
对象的多个副本
如果我允许Recipe
对象具有任意数量的作者,我将如何实现这一点?使用与Chef
对象的关系似乎会创建循环依赖关系,而使用与Chef
uniqueID
连接的属性似乎需要预先指定每个配方
对象的最大作者数。此处使用了术语“循环依赖关系”,但您在核心数据中真正指的是关系和反向关系,这实际上是推荐的
当您在构建一个类系统时,循环依赖是不需要的,这些类在两个方向上相互依赖太多,也称为耦合。它们确实不可取,但它更多地与代码流和逻辑有关,而不是在处理数据关系时
以下是您问题的答案: