CoreData:唯一性约束和一对一强制反向关系

时间:2016-05-31 12:48:26

标签: core-data

请解释一下,为什么核心数据拒绝创建如下所示的结构。

    |Employee |                                            |Department|
    |------   | <<--(opt)-------inverse-------(non_opt)--> |----------|
    |id (un)  |                                            |name (un) |
    |fullName |

    * un - unique, opt - optional

在某个部门,零个或多个员工可以工作,但每个员工必须在一个部门工作,而且只能在一个部门工作。例如,它是MySql的明显模式。对于核心数据,我做了反向关系以避免一致性错误。但核心数据有自己的愿景,这就是它对我说的:

  

错误:配置错误的实体:实体部门不能具有唯一性约束和一个强制性反向关系Employee.department

我已经找到了一些可疑的解决方案(将所有关系设置为可选,从Department.name中删除唯一并以“编程方式”检查它,删除反向关系),但我想了解,我在哪里犯了错误或者如果没有 - 什么是Apple试图用这种奇怪的逻辑说?

1 个答案:

答案 0 :(得分:0)

唯一约束确保实体中的记录对于给定字段是唯一的。但是,在解决冲突的同时,独特的约束以及To-Many关系会导致许多奇怪的问题。

e.g。 “悬挂对无效对象的引用。”

这篇文章基本上是针对一个可能需要数天才能解决的小问题。

http://muhammadzahidimran.com/2016/12/08/coredata-unique-constraints-and-to-many-relationship/