Как моделировать команды, игры и домашние / выездные командные отношения в Core Data? - PullRequest
1 голос
/ 04 сентября 2011

Я пытаюсь использовать Базовые Данные для представления расписания спортивной лиги. В моей модели есть сущность Team и Entity Game. У каждой команды будет много игр. В каждой игре будет две команды, одна из которых будет идентифицирована как команда хозяев, а другая - команда гостей.

В моем текущем подходе я определил отношения "homeTeam" и "awayTeam" внутри объекта Game. Каждое из этих отношений однозначное, и в качестве места назначения указывается сущность «Команда». Я также определил отношение "многие" к играм в сущности Team, для которой в качестве пункта назначения установлено значение Game.

Проблема с этим подходом состоит в том, что я не могу установить обратные отношения любым подходящим способом. Это потребовало бы, чтобы отношения «команда / игры» были обратными отношениям «Game / homeTeam» и «Game / awayTeam», и это недопустимо (насколько я могу судить). Я, конечно, мог бы определить их как однонаправленные отношения, но я начинаю получать предупреждения XCode, и я не уверен, что это хорошая вещь, чтобы сделать здесь.

Я также рассмотрел возможность удаления отношений awayTeam и homeTeam из сущности Game и замены их отношениями команд. Это отношение будет многим со многими в Team с минимальным и максимальным значением 2. Однако такой подход не позволяет мне различать домашнюю команду и команду гостей, что мне нужно будет сделать в моем приложении. .

Буду признателен за любые рекомендации по наилучшему способу представления таких отношений в CoreData. Я, без сомнения, мог бы реализовать это сам, используя свой собственный уровень БД, но я бы предпочел опираться на CoreData, чем придумать здесь собственное решение.

1 Ответ

1 голос
/ 04 сентября 2011

Вот как бы я это сделал:

Game имеет два отношения «один к одному», homeTeam и guestTeam.

Team имеет два отношения «один ко многим», homeGames и outGames. Обратное значение homeGames равно homeTeam, а обратное outGames равно guestTeam.

Имеет смысл?

...