我正在开发一个我正在使用核心数据的项目,但有点混淆了如何使用核心数据。
我有两个实体学生和大学
学生与大学有一对一的关系。那就是每个学生都会有一所大学。 大学与学生有一对多的关系。大学里可以有很多学生。然而,在我的应用程序中,我让用户先添加学生,不需要任何大学信息。所以我保持与大学的关系可选。在第二个视图中,我让用户更新学生的大学信息。
现在我正在添加一名新学生,我只是更新与学生相关的基本字段(第一名,姓,年龄等)。现在在第二视图中更新大学信息时我不确定考虑这种关系的正确方法是什么。
第一个视图将学生对象传递给第二个视图,我按如下方式更新它:
College* college = (College*)[NSEntityDescription insertNewObjectForEntityForName:@"College" inManagedObjectContext:self.managedObjectContext];
college.name = @"name"
college.address = @"address"
[college addStudentObject:self.student];
我做得对吗? 应该是正确的方法:
在第二个视图中添加大学对象并通过在大学的学生关系中添加学生对象来连接实体?
首先检索学生对象,然后从大学关系中获取空的大学对象。然后用数据更新大学对象,然后保存上下文。
我不确定第二个选项是否有意义,但如果是第一个选项,如果我添加一个新的大学,新的大学与学生联系,但旧大学仍然作为冗余数据保留在数据库中。
答案 0 :(得分:0)
在这种情况下,我可能会创建另一个实体StudentEnrollment,它与学生和大学都有一对一的关系。这可能会更容易管理学生的课程,成绩等,以及转移到另一所大学。