Основные данные множественные отношения к одному и тому же объекту - PullRequest
5 голосов
/ 27 января 2011

У меня есть модель данных, которую я пытаюсь перенести из структуры таблиц на основе SQLite в модель Core Data. Моя структура SQLite имеет таблицу Zones и таблицу TransitLogs. TransitLog может иметь следующее (в моей схеме sqlite) start_zone_id end_zone_id

Каждый из которых является внешним ключом таблицы зон. Это прекрасно работает в SQL. Но при переходе на Core Data у меня возникают проблемы с пониманием того, как смоделировать это.

В моей первой попытке у меня было два отношения в моем TransitLog Entity с атрибутами отношений startZone и endZone, которые указывают на Зону (извините, я не смог опубликовать скриншот xcode, так как это мой первый пост здесь)

Вопрос, который у меня возникает, заключается в том, как обрабатывать обратные отношения для атрибутов отношений startZone и endZone. Разве мне они не нужны? В документации и книгах, которые я прочитал по этой теме, лучше всегда использовать обратные отношения, но мне интересно узнать об этой конкретной ситуации, если она не применяется. Или я просто неправильно моделирую это в Core Data.

Спасибо за любой совет.

Mike

Ответы [ 3 ]

3 голосов
/ 27 января 2011

В сущности Зона может быть два отдельных отношения ко-многим, указывающих на TransitLog, которые называются что-то вроде startLogs и endLogs.Это были бы инверсии для startZone и endZone соответственно.

2 голосов
/ 29 января 2011

Нетривиальное управление версиями и миграция моделей могут быть потрачены в реальном времени, особенно в первый раз. По этой причине, а также из-за того, что Apple рекомендует их использовать, я бы рекомендовал добавить обратные отношения.

Тем не менее, я нашел, по крайней мере, один случай, когда просто не имеет смысла добавлять обратные отношения - и все работает отлично. Но в этом случае было (и остается) чрезвычайно трудно найти сценарий, в котором обратная связь будет когда-либо полезной или необходимой.

1 голос
/ 28 января 2011

Спасибо, ребята - оба ответа очень помогли. Westsider прав, в настоящее время мне не нужно переходить из зоны вниз в TransitLogs, и поэтому мне было интересно. Но, как говорится, я думаю, возможно, что они мне понадобятся в какой-то момент (тысячи пользователей надеются на это;)), поэтому, вероятно, лучше смоделировать это сейчас.

Еще раз спасибо за ответы.

...