0

我正在做一个使用核心数据的项目,但有点困惑如何正确使用它。

我有两个实体学生和大学

学生与大学是一对一的关系。也就是说,每个学生都会有一所大学。大学与学生是一对多的关系。那就是大学可以有很多学生。

但是,在我的应用程序中,我让用户在没有任何大学信息的情况下先添加学生。所以我保持与大学的关系是可选的。在第二个视图中,我让用户更新学生的大学信息。

现在我在添加一个新学生时,我只是在更新与学生相关的基本字段(名字、姓氏、年龄等)。现在在第二视图中更新大学信息时,我不确定考虑到这种关系的正确方法是什么。

第一个视图将学生对象传递给第二个视图,我将其更新如下:

College* college = (College*)[NSEntityDescription    insertNewObjectForEntityForName:@"College" inManagedObjectContext:self.managedObjectContext];

college.name = @"name"
college.address = @"address"
[college addStudentObject:self.student];

我做得对吗?正确的方法应该是什么:

  1. 在第二视图中添加大学对象并通过在大学的学生关系中添加学生对象来连接实体?

  2. 首先检索学生对象,然后从大学关系中获取空的大学对象。然后用数据更新大学对象,然后保存上下文。

我不确定第二个选项是否有意义,但在第一个选项的情况下,如果我添加一所新学院,新学院会与学生建立联系,但旧学院作为冗余数据保留在数据库中。

4

1 回答 1

0

在这种情况下,我可能会创建另一个实体,StudentEnrollment,它与学生和大学是一对一的关系。它可能会更容易管理学生的课程、成绩等,以及转移到另一所大学。

于 2013-10-13T14:40:06.470 回答