关于如何在CoreData中建立关系N:M,我有很多问题。
如果我有两个实体A和B并且在实体关系模型中有一个关系N:M必须生成一个新表C,它将包含表A和B的唯一ID。
实体关系的示例:
现在在数据库模型中:
考虑前面的例子将由核心数据完成?
或者:
事实是,我真的迷失了核心数据中的关系,欢迎任何帮助。
对不起我的英语,但不是很好。
答案 0 :(得分:2)
答案是,如果要存储其他信息,即使在Core Data中也必须使用“连接表”。您不必跟踪外键,因为这涉及到关系。
通常,标准DB“连接表”具有丑陋的名称,例如“tableA_tableB”。您应该努力找到合适的名称以使概念清晰。例如:
Car <<--->> Person
成为
Car <--->> Rental <<---> Person
现在,在实体租借中,您可以添加更多信息,例如时间。因此,例如,如果您想在特定日期之前找到所有租车的人(在租赁实体中存储为NSDate),您的谓词将是这样的:
[NSPredicate predicateWithFormat:@"ANY rentals.time < %@", cutoffTime]