2013-05-01 2 views
0

Я пытаюсь добавить объект упорядоченного массива в мою установку CoreData, я знаю, что вы не можете сделать это, поскольку NSSet неупорядочен, и я знаю, что самый простой способ добиться этого - добавить атрибут для объектов внутри набора, которые могут использоваться для заказа набора после его извлечения. Однако это, когда я столкнулся с проблемой с моей установкой, это немного сложно:Атрибут основных данных зависит от отношения

У меня есть entitities: CricketPlayer и CricketTeam ... Пользователь может создать CricketTeam объект с упорядоченным массивом CricketPlayer's который представляет ватин расстановка. Когда я буду получать этот список, я хочу, чтобы модельный ряд был представлен пользователю в том же порядке, в котором они были установлены при создании команды ... Единственная проблема в моем приложении - то же самое происходит в реальной жизни! - игрок может играть более чем для одной команды, поэтому, если бы я установил атрибут на CricketPlayer, скажите: batterNumber, хотя это позволит мне заново создать линейку ватин, если я тогда создаю еще одну команду с тем же игроком и убью его в другой позиции я испортил бы форму ватин для оригинальной команды!

То, что я поэтому хочу сделать, это создать «псевдосвязь», которая не является отношением к другому объекту CoreData, но атрибуту объекта, который зависит от того, какой объект он используется в ... поэтому в моем case Я хочу атрибут на объекте CricketPlayer, который представляет, что игрок ватин номер в частности CricketTeam, если это имеет смысл вообще!

+0

Не могли бы вы использовать упорядоченные отношения? –

+0

Ооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо cheers – simonthumper

ответ

0

Вам нужно еще несколько объектов. Я предполагаю, что игрок может играть за команду более одного раза, то есть в более чем одном матче, в другом порядке в линейке ватин. Таким образом, вам нужен объект соответствия, который связывает CricketTeams и записывает порядок ватин команд для этого конкретного матча.

Match HomeTeamID AwayTeamID

Team TeamID TeamName

Игрок PlayerID PlayerName

PlayerTeam PlayerID TeamID

MatchBattingOrder MatchID PlayerID TeamID BattingOrder

Это очень упрощенно! Это проблема моделирования данных

+0

У меня уже есть объект Match, поэтому, если бы я добавил в свою установку объект BattingOrder, у меня были бы отношения от CricketMatch от HomeTeamLineUp и AwayTeamLineUp, которые являются объектами BattingOrder, и хранят NSOrderedSet из CricketPlayers в каждом из этих составов? – simonthumper

+0

Вам не нужен отдельный HomeTeamLineUp и AwayTeaLineUp. TeamID хранится в MatchBattingOrder, поэтому фильтруйте эту таблицу в соответствии, заказывайте BattingOrder с помощью TeamID. Тогда у вас будет два списка, в правильном порядке ватин, по 1 для каждой команды. Присоединитесь к таблице Team (дважды), чтобы получить имена команд и сущность игрока, чтобы получить имена игроков. Вам нужно подумать о том, где хранить результаты! – user2342258

+0

Фактически MatchBattingOrder может быть местом для хранения отдельных результатов для каждой игры. Каждый игрок находится там для каждого матча, поэтому у вас могут быть столбцы для оценки ватин, калитки, как выходят. Но вам тогда нужно подумать о том, как вы справляетесь с двумя матчами подач, где хранить чьи калитки, которые принимали котелок, и т. Д. Это проблема, которая будет расти, но звучит как забавная проблема для решения. – user2342258

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