在用数据填充实体后创建核心数据关系

时间:2010-11-29 01:33:48

标签: iphone objective-c core-data ios entity

假设你有几个核心数据实体..学生和考试。这两个最初填充了从网上下载的两个xml文件的数据。

现在,学生和考试是分开的......最初他们之间没有联系。但在填写这两个实体后,我可能想要将某些学生连接到某些考试。或者我可能希望让所有学生参加特定的考试。但我仍然希望能够将考试视为独立的事情,这可能没有学生联系。

我不确定如何使用Core Data执行此操作。在数据模型中,您要么有关系,要么不要。我是否应该为考试设置两个不同的实体...一个用于独立考试,一个用于连接到学生,可以从另一个考试设置中建立?

2 个答案:

答案 0 :(得分:7)

不,你不应该制作两种实体类型。

仅仅因为你在两种实体之间存在关系并不意味着你不能创建一个关系为零的对象。

因此,假设StudentExam之间存在多对多关系,您可以通过执行以下操作来创建新的考试:

Exam *newExam = [NSEntityDescription
     insertNewObjectForEntityForName:@"Exam"
     inManagedObjectContext:context];
newExam.course = @"CS 101";
newExam.description = @"Midterm";

之后您可能会在学生和该考试之间建立关系,如:

[newExam.students addObject:aStudent];

(其中studentsExamStudent

之间关系的名称

答案 1 :(得分:2)

我认为你应该在两个实体(考试和学生)之间建立关系,但要将其标记为可选。