Ios 在核心数据中,一对一的关系是否是一种良好的做法

Ios 在核心数据中,一对一的关系是否是一种良好的做法,ios,swift,core-data,Ios,Swift,Core Data,我有两个实体:核心数据中的A和B。A与B之间有一对一的关系。我是否最好只在实体A中保存一个entityB'Id,然后在需要时对实体B进行提取 我的想法: 我仍然认为一对一的关系更好 我同意有时候不需要一对一的关系,但我检查了生成的sqlite文件核心数据。在我看来,核心数据似乎正在将该关系保存为一列,其中包含一个Id。所以我不认为保存一对一的关系比保存一个实体Id更昂贵 从实体A获取对象后,具有一对一关系允许我访问实体B中的相关对象,而无需再次获取。我认为一次抓取要比两次抓取更好,这样才能得到一

我有两个实体:核心数据中的A和B。A与B之间有一对一的关系。我是否最好只在实体A中保存一个entityB'Id,然后在需要时对实体B进行提取

我的想法:

我仍然认为一对一的关系更好

  • 我同意有时候不需要一对一的关系,但我检查了生成的sqlite文件核心数据。在我看来,核心数据似乎正在将该关系保存为一列,其中包含一个Id。所以我不认为保存一对一的关系比保存一个实体Id更昂贵

  • 从实体A获取对象后,具有一对一关系允许我访问实体B中的相关对象,而无需再次获取。我认为一次抓取要比两次抓取更好,这样才能得到一个有关系的对象


  • 两种方法都可以。我同意,没有真正的性能影响,而是将数据存储在关系中;破坏一段关系是很快的。如果关系中的数据相对较大,则最好将其存储在单独的实体中,这样在不需要时就不会出错。将其存储在一个实体中可以简化与fetchedResultsController的一些交互。例如,如果正在获取实体A,但有一个基于实体B的谓词,如果实体B更改,则fetchedResultsController将丢失该谓词