【问题标题】:Cocoa – Core Data object graphCocoa – 核心数据对象图
【发布时间】:2012-02-06 11:12:03
【问题描述】:

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

这是我的对象图的样子:

老板

  • Boss-Department 是多对多的关系
  • 如果 Boss 被删除, 属于那个老板的部门应该被删除(但是 部门与本Boss的关系应删除)

部门

  • Department-Employee 具有多对多关系
  • 部门-老板是多对多关系
  • 如果一个部门 被删除,属于该部门的员工应该是 删除如果他们与任何其他部门没有关系

员工

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

【问题讨论】:

    标签: cocoa core-data object-graph


    【解决方案1】:

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

    老板-部门->无效

    部门-员工 -> 拒绝

    部门老板 -> 无效

    这是 Apple 对删除规则的解释

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

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

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

    No Action: 对目的地的对象不做任何事情 关系。例如,如果您删除一个部门,请保留所有 员工本来的样子,即使他们仍然相信自己属于 那个部门。

    欲了解更多信息,请查看CoreData Programming Guide

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-27
      • 2012-09-26
      • 2010-12-07
      • 1970-01-01
      • 1970-01-01
      • 2012-01-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多