CoreData N:M关系

时间:2013-10-17 10:00:16

标签: ios database core-data

关于如何在CoreData中建立关系N:M,我有很多问题。

如果我有两个实体A和B并且在实体关系模型中有一个关系N:M必须生成一个新表C,它将包含表A和B的唯一ID。

实体关系的示例:

enter image description here

现在在数据库模型中:

enter image description here

考虑前面的例子将由核心数据完成?

enter image description here

或者:

enter image description here

事实是,我真的迷失了核心数据中的关系,欢迎任何帮助。

对不起我的英语,但不是很好。

1 个答案:

答案 0 :(得分:2)

答案是,如果要存储其他信息,即使在Core Data中也必须使用“连接表”。您不必跟踪外键,因为这涉及到关系。

通常,标准DB“连接表”具有丑陋的名称,例如“tableA_tableB”。您应该努力找到合适的名称以使概念清晰。例如:

Car <<--->> Person
成为
Car <--->> Rental <<---> Person

现在,在实体租借中,您可以添加更多信息,例如时间。因此,例如,如果您想在特定日期之前找到所有租车的人(在租赁实体中存储为NSDate),您的谓词将是这样的:

 [NSPredicate predicateWithFormat:@"ANY rentals.time < %@", cutoffTime]