Cocoa - 核心数据对象图

时间:2012-02-06 11:12:03

标签: cocoa core-data object-graph

如何处理删除以下对象?我的删除规则应该是什么样的?

以下是我的对象图:

老板

  • Boss-Department有多对多的关系
  • 如果Boss被删除, 属于该Boss的部门应该被删除(但是 应删除部门与此Boss的关系。)

  • 部门 - 员工有多对多的关系
  • Department-Boss有多对多的关系
  • 如果是部门 被删除,属于该部门的员工应该是 已删除如果,则与其他任何部门没有任何关系

员工

  • 员工部门有多对多的关系
  • 永远不会直接删除员工(仅通过删除部门)。哦,幸福的生活!

1 个答案:

答案 0 :(得分:0)

在这种情况下,对象的删除规则应该像这样处理

Boss-Department - >抵消

部门 - 员工 - >拒绝

Department-Boss - >抵消

以下是Apple将删除规则解释为

的内容
  

拒绝:如果关系目的地至少有一个对象,   那么源对象就无法删除。例如,如果你想   删除一个部门,你必须确保所有员工在那   部门首先转移到其他地方(或解雇!)否则   部门无法删除。

     

Nullify:设置反比关系   目标上的对象为null。例如,如果删除a   部门,将所有当前成员的部门设置为null。   这只有在员工的部门关系时才有意义   是可选的,或者如果您确保为每个部门设置新的部门   在下一次保存操作之前的员工。

     

级联:删除   关系目的地的对象。例如,如果你   删除部门,解雇该部门的所有员工   同时。

     

无动作:对目的地的对象不执行任何操作   关系。例如,如果删除部门,请保留所有部门   即使他们仍然相信他们属于,员工也是如此   那个部门。

有关详细信息,请查看CoreData Programming Guide