【发布时间】:2018-08-15 20:03:20
【问题描述】:
我有一个包含员工和部门的核心数据数据库。每个员工属于一个部门,每个部门都有很多员工。到现在为止还挺好。我想为每个部门添加存储当前本月最佳员工的功能,这将指向一个员工。
当我以 relationship 的身份执行此操作时,我收到警告说该关系应该具有 inverse 关系。但是该员工已经属于该部门,并且为每个员工创建“我是本月员工的部门”的关系似乎没有意义,对于每个部门中除了一名员工之外的所有人来说,这将是 nil . (不尝试在数据库中跟踪员工荣誉的历史记录。)
似乎,从阅读高级描述来看,像这种使用 Fetched Property 可以很好地工作 - 'weak, one-way relationship',但大多数文章都描述了如何实现一个 Fetched Property (a) 使用 Objective C 代码而不是 Swift,和/或 (b) 进入 far 比看起来应该需要的更复杂。用例不是用谓词获取某些东西,只是分配它。我想做的就是:
thisDepartment.employeeOfTheMonth = thisEmployee
后来
recognitionStr = thatDepartment.employeeOfTheMonth.name
有没有更好的方法来解决这个问题?还是 Fetched Properties 是正确的方法?而且,如果是后者,在 Swift 中建立 employeeOfTheMonth 关系的简单直接的方法是什么?谢谢!
【问题讨论】:
-
也许不是您要找的,但“本月最佳员工”并不真正属于部门,而是作为与部门和员工有关系的单独实体以及奖励月份的日期属性.
-
每个部门都有他们当前的当月员工,这就是我想要为每个部门存储的内容。对跟踪上个月、上个月等谁是 E-of-the-M 的历史不感兴趣,只是“现在谁是(这个)部门的 IT。”
-
当然,只是评论。然后创建一个关系,反向关系可能看起来很尴尬,但它主要是 Core Data 所需要的,您不需要在代码中使用它。
标签: swift core-data fetched-property