2013-10-13 3 views
0

Я работаю над проектом, в котором я использую основные данные, но немного путаю, как использовать его по-разному.Основные данные отношения «один ко многим», сохраняющие сущность объекта

У меня есть две сущности, студентов и колледжа

студентов имеет один-к-одному отношения в колледж. То есть каждый студент будет иметь один колледж. У колледжа есть отношение «один ко многим» к ученику. то есть колледж может иметь много студентов.

Однако, в моем приложении я позволяю пользователю добавлять ученика сначала без какой-либо информации о колледже. Поэтому я поддерживаю отношения в колледже по выбору. Во втором представлении я позволяю пользователю обновлять информацию об учебе студента.

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

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

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

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

Могу ли я сделать это правильно? , каким должен быть правильный путь:

  1. Добавление объекта колледжа в 2-зрения и присоединительные объект путем добавления объекта студента в студенческом отношении колледжа?

  2. Извлечение объекта студента сначала, а затем получение пустого объекта колледжа из отношения колледжа. Затем обновите объект колледжа данными и сохраните контекст.

Я не уверен, что если второй вариант имеет никакого смысла, но в случае первого варианта, если добавить новый колледж, новый колледж получить связанный с учеником, но старым колледжем остается в базе данных избыточным данные.

+0

Что произойдет, если колледж уже существует (для этого имени и адреса) в MOC? Вариант 2 не имеет смысла, поскольку нет пустого колледжа, есть только «нуль». – Wain

+0

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

+0

Итак, вы должны добавить некоторый пользовательский интерфейс для выбора существующего колледжа/выбора для добавления нового. Затем подключите ученика к выбранному/новому колледжу. – Wain

ответ

0

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

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