Как создать правильную модель базы данных iOS CoreData? - PullRequest
2 голосов
/ 11 января 2012

Я изучал CoreData, чтобы использовать его в своем приложении, и у меня возникли некоторые проблемы при создании модели sql.

Я хотел бы иметь две сущности (как минимум).Один - Items, другой - History.Логика: у каждой исторической сущности не должно быть ни одного, ни нескольких Items.Items не должно дублировать друг друга - уникальны.

Как я могу смоделировать это в Xcode?Нужна ли мне связывающая сущность, такая как «History2Items»?

Я уже некоторое время борюсь с этим, но могу найти правильное решение.

Любая помощь?

ОБНОВЛЕНИЕ:

Я сделал эту модель:

CoreData model

Для получения данных я использовал отношение для предварительной выборки:

[request setRelationshipKeyPathsForPrefetching:[NSArray arrayWithObject:@"item"]];

И вот как я получаю Предметы для каждой Истории:

History *history = [self.historyArray objectAtIndex:indexPath.row];
NSMutableArray *items = [NSMutableArray arrayWithArray:[history.item allObjects]];

Просто зациклился на массиве предметов, чтобы получить каждый Предмет.

Это так просто.Спасибо @Ashley Mills.

1 Ответ

2 голосов
/ 11 января 2012

Создайте Item и History сущностей и подключите их следующим образом:

enter image description here

Если Item может принадлежать более чем одному History, измените отношение с «один ко многим» на «многие ко многим».

Связывающая сущность нужна вам только в том случае, если вы хотите упорядочить элементы для истории по индексу, поскольку каждый элемент может иметь разные индексы для данной истории. Например, если вы заказываете товары по дате, связывание с объектом не требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...