gpt4 book ai didi

iphone - CoreData 中的关系和实体

转载 作者:搜寻专家 更新时间:2023-10-30 20:26:27 25 4
gpt4 key购买 nike

我有三个实体,A、B 和 C。

其中A与B有一对多关系
B 与 A 是一对多关系

然后 C 与 A 具有一对一(正确的术语?)关系,并且与 B 具有一对一关系。

但是我想要它,所以 C 与 A 的关系必须是 A 的一个实例,该实例与 B 的关系与 C 相关。

通常在代码中我会使用 NSArrays 代替关系,然后在 C 中存储所需实例的索引。这是我第一次使用 CoreData,所以我不确定其中的大部分内容。

编辑:澄清:

enter image description here

最佳答案

首先,如果您避免使用 b 表示多个不同的事物,那么讨论您的情况会更容易。您的图表中有四种关系;为了便于讨论,您可以将它们命名为 defg

要回答您的问题,您不能也不需要在模型中包含您所说的那种限制。该模型定义了种类 托管对象之间的关系,但它没有说明任何关于单个对象的信息。在学习 Core Data 时,尝试从对象的角度思考通常会更好,但您应该知道,您在模型中定义的实体类似于关系数据库中的表:它们定义可以存储,而不是代码应该必须(或不能)存储的内容。

要将 C.a 限制为 C.b.bs 中的 A 之一,您需要编写一些代码。如果 C.a 只设置在一个地方,您可以选择在该代码中实现限制。如果限制对于 C 的正确操作至关重要,您可以改为(或另外)选择向 C.a 的 setter 添加一个检查,以验证 A 是允许的之一。您可能还需要修复 C.b 的 setter ,以便如果 C.b 发生变化,它会验证 C.a 是否仍然有效并在无效时做一些适当的事情(清除 C.a,选择一个新的 C.a,拒绝接受新的 C.b,发布通知,抛出异常,无论如何)。

关于iphone - CoreData 中的关系和实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8191169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com