2013-12-04 2 views
0

Я разрабатываю простое приложение iOS со следующей настройкой базы данных. Существует субъект спортсмена, который имеет много-много отношений с тренировкой. Тренировка имеет много отношений с результатами тренировки. Спортсмен < < - >> Тренировка < - >> Workout_Scores. Я думаю, что я настроил свою модель неправильно. Я думал, что спортсмены могут делиться тренировками (например, у нескольких спортсменов есть один и тот же объект тренировки), или упражнение может быть эксклюзивным для одного человека. Тем не менее, оценка упражнений строго для одного спортсмена, а не для совместного использования. У вас может быть до 1 балла за каждую тренировку. У 2 спортсменов может быть одинаковая тренировка, но их оценка должна быть раздельной. Я правильно настроил свою модель? Должен ли объект оценки быть связан с спортсменом, а не с тренировкой?iOS - путаница данных «многие-ко-многим»?

+0

Если у вас есть уникальная 'тренировка score' для каждого' 'athlete' за Workout', то отношения между' 'workout' и тренировками оценка' является взаимно однозначной. Однако, когда включен «Athlete», вам нужна отдельная таблица с «оценками» (как и вы), которая содержит «AthleteID», «WorkoutID» и «score». У вас есть 1 «Athlete», который связан с несколько «тренировок», и это выглядит отлично. –

ответ

2

Похоже, вы хотите использовать Workout_Scores как своего рода таблицу соединений (хотя терминология не подходит для инфраструктуры объектного графика, такой как CoreData). Ваша организация Workout_Scores должна иметь два к одному отношения к спортсменам и тренировкам. У спортсмена должно быть отношение «to-many» к Workout_Score (у спортсмена может быть много баллов по тренировкам), а тренировка должна иметь отношение «ко многим» к WorkoutScore (тренировка может иметь множество баллов за тренировку, которые происходят от одного или от многих разных спортсменов) ,

Вот что я предлагаю для вашей модели данных:

enter image description here

+0

Спасибо, дополнительное изображение было очень полезно, вопрос просто? Как настроить выбранное свойство? –

+0

То есть, что бы я поставил для предиката или назначения? –

+0

Я думаю, вам нужно что-то вроде 'ANY workoutScores.athlete == $ FETCH_SOURCE' –

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