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.

Другие вопросы по тегам