为什么实体需要逆?

Und*_*ion 2 entity entity-relationship core-data ios

我有一个非常简单的核心数据模型,包含一个包含多个图像的图库.在我看来,Gallery应该足以与Image建立一对多的关系,但是如果我还没有建立从Image回到gallery的反向关系,我会得到编译器警告和错误.从面向对象的角度来看,在我看来,Image不应该知道或关心它是否在Gallery或任何其他ManagedObject中,为什么编译器强迫我创建这种反向关系?在图像上有一个"画廊"属性似乎非常错误.

Mar*_*rra 8

核心数据使用反向关系来帮助维护参照完整性.当您更改关系或删除对象时,它会显着提高性能.如果没有反转,那些相同的操作可能会导致全表扫描.

在我看来,没有反转应该是错误而不是警告.在一些相当普遍的情况下,差异可能是戏剧性的.

想象一下没有它们的多实体级联删除.可能需要足够长的时间,操作系统认为您的应用程序已崩溃.