CoreData - таблица сопоставления моделирования
Я планирую использовать CoreData для моделирования iOS-приложения "Новости". В нем будет много разделов (читайте UITabBarItem), которые будут содержать много статей (в UITableView). Статьи могут появиться и в других разделах. Кроме того, порядок сортировки каждой статьи является еще одним важным фактором.
В базе данных жаргон
- Стол "Статья"
- Разделы "стол и
- Таблица "Article_Sections" для сопоставления статьи с разделом с дополнительным полем порядка сортировки.
Я пытался и не могу смоделировать это в CoreData. Я застрял с
- Класс "Секция", имеющий отношение "многие ко многим" с
- класс "Article" (с обратным отношением "многие ко многим" к классу "Section").
Однако с этим я не знаю, как получить порядок сортировки. Любой намек на то, как это сделать, очень ценится. Заранее спасибо.
Sandeep
3 ответа
Мне пришлось перестать думать с точки зрения базы данных, чтобы разобраться в этом. Мое решение включало 2 класса:
- ArticleList
Свойства: * Имя списка * Идентификатор статьи * Порядок сортировки
Отношения: * Статья; один к одному
- Статья
Свойства: * Идентификатор статьи *....
Отношения: * Список; один ко многим
Я запрашиваю ArticleList и сортирую на sortOrder, чтобы получить список статей для определенного канала / раздела. Затем используйте valueForKeyPath: для получения свойств статьи (таких как заголовок и т. Д.).
Вы можете добавить объект "ArticleSectionPair" в качестве посредника между "Разделом" и "Статьей" с помощью:
- атрибут "sortValue"
- отношение "один ко многим" "section" к сущности "Section" (с обратным "articlePairs")
- отношение "один ко многим" "article" к сущности "Article" (с обратным "sectionPairs")
Используя атрибут "sortValue" и th, вы можете получить отсортированную коллекцию ArticleSectionPairs из раздела и получить статьи с [sortedArticlePairs valueForKeyPath:@"article"]
,
Я думаю, что вам нужно удалить прямую связь между разделом и статьей и просто установить связь из таблицы Article_Sections обратно к таблицам section и article.