苹果的
Relationship Delete Rules文档很简单明了.但它只涉及一对多关系(删除一对一关系的规则很容易推断).不清楚这些规则对于多对一关系是什么意思.所以让我们在这里澄清一下.
我们使用Apple的文档中使用的Employees-Department示例.虽然现实生活的含义可能对这些适用于员工与部门关系的规则是可笑的,但作为程序员,我们只是在谈论他们在逻辑上的逻辑含义.
>拒绝
如果在关系目的地有一个对象,则源对象不能被删除.
例如,如果要删除员工,无论其部门是否还有其他员工,您必须确保部门首先被删除,否则员工不能被删除.
> Nullify
从目标对象的反向关系中删除源对象. (见@ bshirley的简洁解释)
例如,如果您删除了员工,请将他从他的部门的员工关系中移除.如果部门的剩余员工数量大于所需的最低数量,或者如果您确保在下一次保存操作之前为部门添加新员工,这只会有意义.
[问题:如果是最后一位员工,该部门的员工关系会变成空吗?
(由@TechZen回答:一对多关系总是返回一个设置的对象,它永远不会是零,如果对方的对象没有对象,则该对象为空.)
级联
删除关系目的地的对象.
例如,则同时删除他的部门,即使部门还有其他员工.
(使用注意事项:通常会在整个对象图形中产生“一个删除链的整个对象图”,如@TechZen在他的例子中所描述的.)
>没有行动
在关系的目的地对对象不做任何事情.
例如,如果您删除员工,请尽可能离开他的部门,即使它仍然相信拥有该员工.
从这里可以推断“多对多关系删除规则”的含义.