【问题标题】:CoreData: uniqueness constraints and to-one mandatory inverse relationshipCoreData:唯一性约束和一对一强制性逆关系
【发布时间】:2016-09-29 11:54:54
【问题描述】:

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

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

    * un - unique, opt - optional

在某些部门,零个或多个员工可以工作,但每个员工都必须在一个部门工作,并且只能在一个部门工作。例如,MySql 的架构很明显。对于 Core Data,我建立了反向关系以避免一致性错误。但 Core Data 有自己的愿景,这就是它对我的意义:

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

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

【问题讨论】:

  • 应该和with Unique Constraints, NSMergeByPropertyObjectTrumpMergePolicy overwrites all attributes, just not the relationships.相关,看这里:dorianroy.com/blog/2015/09/…
  • 感谢您的回复,但我认为这不是我的情况。 1)我不使用此策略,所有约束检查错误都会引发异常,并且 2)这是编译时错误,Core Data“不喜欢”我的数据模式并且应用程序无法使用它构建。
  • 唯一约束冲突就像合并冲突,它们不是 SQL 唯一索引

标签: core-data


【解决方案1】:

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

例如“对无效对象的悬空引用。”

这篇文章主要关注一个可能需要几天时间才能解决的小问题。

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

【讨论】:

    猜你喜欢
    • 2014-06-20
    • 2023-03-11
    • 2022-12-11
    • 1970-01-01
    • 1970-01-01
    • 2017-04-12
    • 2015-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多