2009-10-03 3 views
0

Я довольно новичок в Objective C и Core Data и имею проблему, создающую случай, когда игроки объединяются друг с другом и имеют несколько совпадений, которые заканчиваются определенным результатом.Соотношение моделирования в данных ядра

С MySQL у меня будет таблица игроков (первичный ключ игрока, имя) и таблица соответствия (внешний игрок игрока, внешний ключ игрока B, результат).

Теперь, как это сделать с помощью Core Data? Я могу легко связать сущность игрока с объектом-совпадением, используя отношения. Но как я могу моделировать обратное направление для второго игрока ref. в объекте соответствия?

игрока
Имя: Атрибут
Match: Отношения Match

Match
Результат: Атрибут PlayerA: Отношение к Player (< - Inverse к Player.Match)
PlayerB: Отношение к игроку (< - Inverse to ????)

Было бы здорово, если бы кто-нибудь мог дать мне представление об этом!

Thanks, Stevie.

ответ

0

Если матч имеет конкретный домашний игрок и далеко игрока, то вы должны использовать:

player.homeMatches <---->> match.homePlayer 
player.awayMatches <---->> match.awayPlayer 

Вы все еще можете иметь:

player.matches 

, если вам нужно найти все матчи и вы не хотите, чтобы И ваши поля поиска вместе. Или вы можете предоставить способ/чтения-свойство «AllMatches»:

- (NSSet *)allMatches 
{ 
    return [[NSMutableSet setWithSet:self.homeMatches] unionSet:self.awayMatches]; 
} 

дать значение во время выполнения. Конечно, вы не можете выполнить поиск по этому свойству allMatches с помощью предиката fetch, но вы можете сортировать и получать доступ во время выполнения.