2016-01-05 2 views
0

Я начал изучать основные данные. После работы с некоторыми базовыми учебниками с 1 отношением (например, 1 учитель - 20 учеников), я хочу попробовать что-то «больше».Основные данные - понимание нескольких взаимосвязей

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

Model

Так с приложением вы можете создавать профили игроков, товарищеские игры и турниры. Пользователь может проверить «совпадения» между двумя игроками. Например, игрок «Макс» сыграл против игрока «Тони» 25 выставочных игр и 8 игр в турнирах.

В SQL-базе данных я бы создал три таблицы (такие же, как на рисунке выше). Но столбец будет иметь еще один атрибут «sessionID» и идентификаторы playerID. Итак, с турнирным знаком я все еще мог проверить, является ли это турнирной игрой или выставочной игрой.

Но как насчет данных о сердечнике? Какие отношения мне нужно создать, чтобы я мог различать выставочную игру и турнирную игру?

+0

В чем ** ** разница между выставочной игрой и турнирной игрой? –

+0

Нет никакой разницы. Разница лишь в том, что турнирная игра связана с конкретным турниром. Обычная выставочная игра - это просто игра без ссылки на турнир. –

ответ

1

модель у вас там будет работать только для двух игроков, поэтому вы должны переместить детали матча - игроки и мячи забиты в таблицу ссылок. Как насчет этого? enter image description here

+3

Добавьте обратные отношения; всегда. –

+0

и Player -> MatchDetails, вероятно, должны быть для многих. – pbasdf

+0

Почему матч - >> MatchDetails отношение ко многим? –

1

Мы можем упростить модель данных, если вы можете использовать имя игрока в качестве идентификатора, чтобы «mike» и «tony» сохранялись в Match.

в этом случае становится простой случай использования поиска предикат соответствия игрока 1 и игрока 2

есть несколько хороших уроков там, в том числе www.jamesonquave.com/core-data-in-swift -tutorial-part-2

+0

Должен ли я устанавливать индивидуальные идентификаторы? Я думал, что основные данные делают это автоматически. –

+0

нет, вы достаточно правы - вам не обязательно. – Russell

+0

Что делать с пользовательскими классами для объектов? Каково ваше мнение? Должен ли я создавать пользовательские классы или я должен получить все с помощью 'let playerName = managedObject.valueForKey (« name »)'? –

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