假设我有两个名为Book and Publisher的实体 书有属性: - 作家,头衔。 2. Publisher具有以下属性: - 名称,类型 我设置了一个关系: - Publisher to Book(一对多并将其设置为反向关系)
选择了关系后,我可以在DataModal检查器中看到一个名为Delete Rule的行,其中包含三个选项1. Nullify 2. Cascade 3. Deny
这些是什么,我只想在删除最后一本书
时才删除Publisher实体提前谢谢你。 我只是一个初学者 :)
答案 0 :(得分:1)
文档很好地解释了这些删除规则
关系删除规则
关系的删除规则指定了如果发生什么应该发生的事情 尝试删除源对象。请注意如果是的话 尝试了。如果关系的删除规则设置为拒绝,则为 可能不会删除源对象。再考虑一下 部门的员工关系,以及不同的效果 删除规则。
拒绝如果关系目的地中至少有一个对象 (员工),不要删除源对象(部门)。
例如,如果要删除部门,则必须确保该部门 该部门的所有员工首先转移到其他地方 (或解雇!);否则,部门无法删除。
Nullify删除对象之间的关系但不删除 对象。
只有员工的部门关系才有意义 是可选的,或者如果您确保为每个部门设置新的部门 在下一次保存操作之前的员工。
Cascade删除关系目的地时的对象 你删除了源。
例如,如果您删除部门,请解雇所有员工 那个部门在同一时间。
无操作对目标处的对象不执行任何操作 关系。
例如,如果删除部门,请将所有员工保留为 他们是,即使他们仍然相信他们属于那个部门。
应该清楚的是,这些规则中的前三个是有用的 不同的情况。对于任何给定的关系,由您决定 根据业务逻辑选择哪个最合适。 为什么No Action规则可能有用,这是不太明显的,因为如果 你使用它,可以将对象图留在一个 不一致的状态(与删除关系的员工 省)。
如果您使用“无操作”规则,则由您来确保 保持对象图的一致性。你有责任 将任何反比关系设置为有意义的值。这可能是 在你有多对多关系的情况下受益 可能是目的地的大量物品。