当我的关系删除规则设置为Nullify时,是否也会删除反向关系?

don*_*ile 4 iphone core-data

示例:我有一个部门和一个员工.部门与许多员工之间存在Nullify关系,而员工与一个部门之间存在反向关系.

现在我删除了与员工的关系.所以,让我们说营销部门不再与Joe Stevens联系了.

1)Joe Stevens在询问他的部门时是否仍然链接到营销部门?或者Core Data是自动处理这个并且还"无效"了吗?

2)在Employee一侧指定哪个删除规则是否重要?让我们说那是Cascade.该部门删除了与员工的关系.我认为员工的删除规则与此案无关,对吧?

Tec*_*Zen 14

删除规则控制在删除保存规则的对象时关系另一端的对象发生的情况.

所以:

A<-(cascade)->>B
B<<-(nullify)->A
Run Code Online (Sandbox Code Playgroud)

删除A会导致删除所有相关的B.然而,删除任何一个B只会导致A忘记该特定B.

因此,删除规则始终与其所针对的对象相关,因为目标对象是删除规则的整个点.当对象具有多个关系时尤其如此.

A<-(cascade)->>B
B<<-(nullify)->A
C<--(cascade,required)-->>B
Run Code Online (Sandbox Code Playgroud)

无论A想要什么,C对象都会阻止它同时保存的任何B对象的级联删除.(在这种情况下,A将无效.)

您不应该在实际编程方面考虑删除规则,而应考虑您尝试建模的现实世界系统.考虑一下真实系统的关系,然后设置删除规则来模仿它们.在这种情况下,我们将模仿公司的实际组织规则.