在核心数据中,拥有一对一的关系是一种很好的做法

时间:2017-06-06 02:35:45

标签: ios swift core-data

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

我的想法:

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

  1. 我同意有时不需要一对一的关系。但是我检查了生成的sqlite文件Core Data。对我来说,看起来核心数据将该关系保存为其中包含Id的列。因此,我认为保存一对一关系比保存实体B'Id更贵。

  2. 从实体A获取对象后,具有一对一的关系允许我访问实体B中的相关对象而无需再次获取。我认为最好一次获取一个具有关系的对象,而不是两次获取。

1 个答案:

答案 0 :(得分:0)

无论哪种方式都可能没问题。我同意没有真正的性能影响,但将数据存储在关系中;错误的关系非常快。如果关系中的数据相对较大,则将其存储在单独的实体中是一种很好的做法,因为这样可以在不需要时将其存在故障。将它存储在一个实体中可以更容易地与fetchedResultsController进行一些交互。例如,如果正在获取实体A但是具有基于实体B的聚会的谓词,则如果实体B改变,则fetchedResultsController将错过它。