我正在将Realm中的数据模型迁移到Core Data(以便可以与Ensembles同步)。该模型是一个图,在Realm中,我通过有关交易中删除等的规则自己管理图的完整性。
我在这里制作了一个示例图,旨在描述我的问题的症结所在。
图中的所有对象都是物。事物与其子事物之间存在有序的多对多关系。但是,subThings有多种链接方式。例如,一个DerivedFromThing类型具有两个对多关系(它们的逆关系将在另一Thing的subThings中)。
因此,我的图具有完整的逆关系集,但是没有一种似乎可以在Core Data中建模的方式。
由于我已经有了管理完整性的代码,因此我很乐意亲自照顾所有关系。但是,我在构建中收到警告,因此我想再次检查我是否采用了正确的方法。
有没有一种方法可以在Core Data中为我的许多关系建模?如果没有,我是否会忽略我的警告而遇到问题。
谢谢。
答案 0 :(得分:0)
我建议避免在CoreData中使用单向关系:根据我的经验,当您不说任何逆运算时,CD会将其隐式视为“一对一”,这可能不是您想要的。
尽管CD可以处理许多关系,但在您的情况下,我认为您可能需要通过直接对中间实体(或可能两个或更多)建模来实现关系。例如,您可能有一个名为Association
并带有
associationType
的属性(“父”,“超级”或其他)associatedTo
实体的一对一关系Thing
(具有一对多的倒数)associatedFrom
实体与DerivedFromThing
的一对一关系(也具有一对多的倒数)很难提供进一步的建议,因为我怀疑您的真实模型比您的示例更复杂,但是上述方法应该提供高度的灵活性。有关更多信息,请参见the Core Data Programming Guide中的“基于关系的语义建模”。