CoreData 困境:没有反向关系的实体
Posted
技术标签:
【中文标题】CoreData 困境:没有反向关系的实体【英文标题】:CoreData dilemma: entity without inverse relationship 【发布时间】:2015-05-21 07:31:54 【问题描述】:我有实体 Image
和 Post
。 Post 与 Image 具有单向 Nullify 关系。这是一个关系而不是一个属性,因为我想从关系的延迟加载中受益,使 Post 实体的初始获取非常快。你可以猜到,Image
包含图像数据。
Apple 通常不鼓励单向关系 (Link),除非有充分的理由不建立反向关系。
我没有它的原因是Image
是一个通用实体,因此与所有使用它的实体建立反向关系似乎有点矫枉过正。但是,我想知道是否有更好的方法来解决这个问题而不违反苹果的建议。
【问题讨论】:
【参考方案1】:父实体。
Comment
、BlogPost
和 Tweet
都继承了 images
关系。反向关系指向一个 TextContent 对象,它可以是 Comment、BlogPost、Tweet 或 TextContent 本身。
【讨论】:
好的,干净的方法,我可以保持反向关系。 这是一个不错且干净的解决方案,我也一直在考虑引入,但我一直听说 Core Data 中的继承效率低下,因为它会膨胀底层数据库,因为所有属性(父母+孩子)最终会在同一张桌子上并占用大量空间?【参考方案2】:正如苹果所说...Unidirections Relationships
没有必要在两者中建立关系模型 方向
顺便说一句,如果 CoreData 检测到这样做更好,我认为属性也可以延迟加载(由系统)...
您可以对此感兴趣 avoid warnings in your project
【讨论】:
以上是关于CoreData 困境:没有反向关系的实体的主要内容,如果未能解决你的问题,请参考以下文章
将两个 CoreData 关系(具有反向关系)分配给同一个实体