CoreData - 建模映射表

时间:2011-12-17 19:57:31

标签: ios cocoa-touch core-data iphonecoredatarecipes

我计划使用CoreData为“新闻”iOS应用程序建模。这将包含许多部分(读取UITabBarItem),其中包含许多文章(在UITableView中)。文章也可能出现在其他部分。此外,每篇文章的排序顺序是另一个重要因素。

在数据库术语中我有

  • “文章”表
  • 章节“表格和
  • “Article_Sections”表,用于将文章映射到具有其他排序顺序字段的部分。

我已经尝试过,无法在CoreData中对此进行建模。我坚持了

  • “部分”类与
  • 有多对多关系
  • “Article”类(与“Section”类具有反向多对多关系)。

然而,有了这个,我不知道如何派生排序顺序。任何暗示如何做到这一点非常感谢。提前谢谢。

和Sandeep

3 个答案:

答案 0 :(得分:1)

我不得不停止用数据库来思考这个问题。我的解决方案涉及2个类:

  • ArticleList

属性:          * 列表名称          *文章ID          *排序顺序

关系:          *文章;一到一个

  • 文章

属性:          *文章ID          * ....

关系:          *清单;一个对多

我查询ArticleList并对sortOrder进行排序,以获取特定Feed /部分的文章列表。然后使用valueForKeyPath:来获取文章属性(例如标题等)。

答案 1 :(得分:0)

我认为您需要删除部分和文章之间的直接关系,并且只需将Article_Sections表中的关系返回到部分和文章表。

答案 2 :(得分:0)

您可以在“Section”和“Article”之间添加一个实体“ArticleSectionPair”作为中介:

  • 属性“sortValue”
  • “部分”实体的一对多关系“部分”(反向“articlePairs”)
  • “条款”实体的一对多关系“文章”(反向“sectionPairs”)

使用属性“sortValue”和th,您可以从一个部分获取ArticleSectionPairs的已排序集合,并获取带有[sortedArticlePairs valueForKeyPath:@"article"]的文章。