对多关系的逆关系

Posted

技术标签:

【中文标题】对多关系的逆关系【英文标题】:Inverse relationship for to-many relationship 【发布时间】:2011-12-08 07:51:16 【问题描述】:

我有如下要求:

    部门 -->>(有很多)员工 Employee -->> (只能属于一个部门)部门,没有任何部门就没有员工。

为了进行设置,我设置了类似的模型

Department
    relationships
       name: employees
          destination: Employee
          optional:yes
          to-many:yes
          delete-rule:cascade
          inverse-relationship: none
Employee
    relationships
       name: department
          destination: Department
          optional:NO
          to-many:NO
          delete-rule: No action
    我应该在这个模型的任何地方创建反向关系吗? 我是否在 Employee 中为部门关系设置了删除规则,对吗? 我还有什么要让这个模型正确的吗?

谢谢

【问题讨论】:

【参考方案1】:

是的,您几乎总是应该根据苹果的文档指定反比关系。您可以选择不这样做,但应该很少使用它。

我认为如果您不创建反向关系,您的数据库可能会损坏,但我不是专家。

这两个关系应该是彼此的逆关系。

我不确定删除规则。对不起。

编辑:@jrturton 的评论表明您的删除规则很好。

【讨论】:

问题中的删除规则似乎是明智的——从部门级联到员工,所以如果你删除了一个部门,你会删除所有员工,但反过来不采取任何行动——删除员工不应该影响部门。

以上是关于对多关系的逆关系的主要内容,如果未能解决你的问题,请参考以下文章

从 CoreData 关系中获取错误实体的对象

CoreData 中的逆关系是啥

<...> 的逆关系不互为逆关系

获取连接的逆?

Hibernate多对多关系映射(建表)

(转)Hibernate框架基础——多对多关联关系映射