【问题标题】:Creating Core Data relationships after filling up entities with data在用数据填充实体后创建 Core Data 关系
【发布时间】:2010-11-29 01:33:47
【问题描述】:

假设您有几个核心数据实体 .. Student 和 Exam。这两个最初填充了从网上下载的两个 xml 文件的数据。

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

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

【问题讨论】:

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


    【解决方案1】:

    不,您不应该创建两种实体类型。

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

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

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

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

    [newExam.students addObject:aStudent];
    

    (其中studentsExamStudent之间关系的名称

    【讨论】:

    • 诀窍是使关系成为可选的。这样,如果一个 Student 对象需要一个 Exam 关系,它就可以有一个关系,但如果它没有一个,则没有问题。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多