我真的需要在Core Data中始终保持双向关系吗?

don*_*ile 4 iphone macos cocoa cocoa-touch core-data

可能重复:
每个核心数据关系都必须具有反转吗?

示例:如果我有两个实体Person和Car,并且每个实体都应该与Image实体链接 - 这将是什么样子?

现在,我只会制作三个实体:人物,汽车,图像.因此人和汽车可以链接到图像实体.它们与Image实体具有1:1的关系.

但现在,一位核心数据家伙表示,必须以两种方式对关系进行建模.这是愚蠢的与否?那我需要两个Image实体.CarImage和PersonImage.或者一个奇怪的Image实体,它有两个关系:一个是Car实体,一个是Person实体.

你会如何建模?

hoo*_*oop 5

简要版..

是的,关系需要以两种方式建模.不,这并不意味着你需要两个Image实体.如果一个人与图像有单向关系,并且您删除了图像(没有反向关系,因此对此人一无所知),那么您的图形现在已损坏.

所以你需要双向关系,但这并不意味着你需要两个图像实体.你的形象只需要一个关系 - 比如说,'容器'可以是一个人或一个汽车(一个共享的父实体会帮助你).

较长的版本.. https://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/CoreData/Articles/cdRelationships.html#//apple_ref/doc/uid/TP40001857-SW6