Ios CoreData关系与属性

Ios CoreData关系与属性,ios,core-data,Ios,Core Data,在我使用CoreData的应用程序中,我想创建两个相互关联的实体;假设列表和项目,每个列表将有许多项目s。现在我想知道在项实体中使用关系、一对多或父属性哪个更好。例如,如果我将使用关系,我将把每个项与其父项列表关联起来。另一方面,如果使用属性,我将在属性中保存列表的ID 使用关系或属性哪种方法更好?每种方法的优缺点是什么?您应该使用关系。这将产生可伸缩、可用且性能良好的代码 父实体的概念实际上是完全不同的。它适用于共享相同基本属性且可能与其他属性略有不同的实体。例如,动物可以是父实体,鸟,哺乳动

在我使用CoreData的应用程序中,我想创建两个相互关联的实体;假设
列表
项目
,每个
列表
将有许多
项目
s。现在我想知道在
实体中使用关系、一对多或父属性哪个更好。例如,如果我将使用关系,我将把每个
与其父项
列表
关联起来。另一方面,如果使用属性,我将在属性中保存
列表的ID


使用关系或属性哪种方法更好?每种方法的优缺点是什么?

您应该使用关系。这将产生可伸缩、可用且性能良好的代码

父实体的概念实际上是完全不同的。它适用于共享相同基本属性且可能与其他属性略有不同的实体。例如,
动物
可以是父实体,
哺乳动物
可以是子实体。他们会有共同的领域,但也可能有一些不同的领域


父实体的最大缺点是所有子实体都将存储在同一个SQLite表中,这最终会影响性能

即使在使用关系时,子实体也会存储在同一个SQLite表中,这不是默认情况吗?我的意思是,如果我要创建多个子实体,它们将分别位于不同的表中(即,包含其所有数据的每个实体的表),并且每个实体通过关系连接到其父实体。在这种情况下,我使用的是关系还是存储ID的属性都无关紧要。如果我错了,请纠正我。是的,错了。将父实体和子实体与通过关系链接的普通实体混淆。(这些可以形成层次结构,“类似父子”的结构,也可以不形成。)也许您还可以将数据库(本质上是一个文件)和表(此文件中的结构元素)混合在一起。