2010-11-29 2 views
2

Скажите, что у вас есть пара объектов с основными данными. Студент и экзамен. Эти два изначально заполнены данными из двух xml-файлов, загружаемых из Интернета.Создание отношений данных ядра после заполнения объектов данными

Теперь студенты и экзамены - это разные вещи ... изначально между ними нет связей. Но после заполнения этих двух объектов я мог бы связать некоторых студентов с некоторыми экзаменами. Или, может быть, я хочу, чтобы все студенты сдавали экзамен. Но я все еще хочу иметь возможность рассматривать экзамены как самостоятельные вещи, которые, возможно, не связаны с учениками.

Я не уверен, как это сделать с помощью Core Data. В модели данных у вас либо есть отношения, либо нет. Должен ли я иметь два разных сущности для Экзамена ... один для независимых экзаменов и один связанный со студентом, который может быть создан из другой экзаменационной?

ответ

7

Нет, вы не должны создавать два типа сущностей.

Просто потому, что у вас есть отношения между двумя типами сущностей, это не значит, что вы не можете создать объект, где это отношение равно нулю.

Итак, если у вас есть многие-ко-многим между Student и Exam, вы можете создать новый экзамен, делая что-то вроде:

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

Вы могли бы потом установить связь между студентом и что экзамен, как:

[newExam.students addObject:aStudent]; 

(где students это имя отношения между Exam и Student

+0

Трюк заключается в том, чтобы сделать связь необязательной. Таким образом, объект Student может иметь отношение к экзамену, если он ему нужен, но нет проблем, если он его не имеет. – TechZen 2010-11-29 14:23:08

2

Я думаю, что у вас должны быть отношения между двумя сущностями (экзамен и ученик), но пометить его как необязательный.

Смежные вопросы