了解一对多核心数据删除规则

核心数据关系删除规则我有点模糊。 所以如果有人能帮我回答一些关于他们的问题。

我有实体A和B.A与B有多对多的关系,B和A有一对一的关系。

A <— >> B

现在,如果我将A的删除规则设置为Cascade,我知道它将删除与之相关的所有B。 但是如果我把它设置为Nullify,它会把Bs设置为NIL还是将外键设为Nil?

而且我到处关注着从B到A的关系,我应该把它设置为Nullify吗? 那只是在A上排除“B对象”? 或者它将否定与A有关的所有B? 怎么样Cascade? 它会删除所有与A相关的B,还是只删除B?

或者我只是在B到A的关系上使用“No Action”,所以当我删除B时,A不会发生变化,但是对B的引用将不存在?

我很高兴与这些混淆,所以请原谅我的问题。

谢谢。

如果将删除规则设置为“无效”并删除A对象,则会删除对该对象在Bs中的引用。 反过来也是一样的。 如果你有级联和删除B,那么它将删除指向B的A. 然后它将遵循从A的删除规则到其余的B(级联或无效)。

您设置的规则实际上取决于您的数据模型。 如果A是客户,B是他们的订单,那么您可以设置A-> B规则来拒绝(如果客户有订单,则阻止A被删除)或级联(当客户被删除时删除订单)。 B-> A规则可能是“无效”。 如果删除订单,只需删除客户订单的参考。

关系删除规则在“ Apple核心数据编程指南”中进行了描述