Создание отношений базовых данных после заполнения сущностей данными - PullRequest
2 голосов
/ 29 ноября 2010

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

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

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

Ответы [ 2 ]

7 голосов
/ 29 ноября 2010

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

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

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

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

Позже вы можете установить связь между студентом и этим экзаменом, например:

[newExam.students addObject:aStudent];

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

2 голосов
/ 29 ноября 2010

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

...