ios – 删除多对一关系的规则

前端之家收集整理的这篇文章主要介绍了ios – 删除多对一关系的规则前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
苹果的 Relationship Delete Rules文档很简单明了.但它只涉及一对多关系(删除一对一关系的规则很容易推断).不清楚这些规则对于多对一关系是什么意思.所以让我们在这里澄清一下.

我们使用Apple的文档中使用的Employees-Department示例.虽然现实生活的含义可能对这些适用于员工与部门关系的规则是可笑的,但作为程序员,我们只是在谈论他们在逻辑上的逻辑含义.

>拒绝
如果在关系目的地有一个对象,则源对象不能被删除.

例如,如果要删除员工,无论其部门是否还有其他员工,您必须确保部门首先被删除,否则员工不能被删除.
> Nullify
从目标对象的反向关系中删除源对象. (见@ bshirley的简洁解释)

例如,如果您删除了员工,请将他从他的部门的员工关系中移除.如果部门的剩余员工数量大于所需的最低数量,或者如果您确保在下一次保存操作之前为部门添加新员工,这只会有意义.

[问题:如果是最后一位员工,该部门的员工关系会变成空吗?
(由@TechZen回答:一对多关系总是返回一个设置的对象,它永远不会是零,如果对方的对象没有对象,则该对象为空.)
级联
删除关系目的地的对象.

例如,则同时删除他的部门,即使部门还有其他员工.

(使用注意事项:通常会在整个对象图形中产生“一个删除链的整个对象图”,如@TechZen在他的例子中所描述的.)
>没有行动
在关系的目的地对对象不做任何事情.

例如,如果您删除员工,请尽可能离开他的部门,即使它仍然相信拥有该员工.

从这里可以推断“多对多关系删除规则”的含义.

解决方法

这些是所有关系(而不是属性)的删除规则.它们适用于一对多关系.

> Nullify – 如果你删除了一个员工,那么反向关系设置为nil,如果是1对1,那么在这种情况下,部门的员工减少一个>级联 – 如果你删除一个员工,它的部门将被删除.该部门将遵循所有属性删除规则,1)如果员工删除规则为Cascade,则该操作将删除所有员工; 2)如果雇员删除规则为Nullify,则所有员工都将被“搁置”而没有部门

猜你在找的iOS相关文章