【问题标题】:CoreData - Modeling mapping tableCoreData - 建模映射表
【发布时间】:2011-12-17 19:57:31
【问题描述】:
我计划使用 CoreData 来为“新闻”iOS 应用建模。这将有许多部分(读取一个 UITabBarItem),其中将包含许多文章(在一个 UITableView 中)。这些文章也可能出现在其他部分。此外,每篇文章的排序顺序也是另一个重要因素。
在数据库术语中我有
- “文章”表
- Sections”表和一个
- “Article_Sections”表将文章映射到具有额外排序字段的部分。
我已经尝试过,但无法在 CoreData 中对此进行建模。我坚持了一个
- “Section”类与
具有多对多关系
- “Article”类(与“Section”类具有反向多对多关系)。
但是,我不知道如何得出排序顺序。非常感谢任何有关如何执行此操作的提示。提前致谢。
桑迪普
【问题讨论】:
标签:
ios
cocoa-touch
core-data
iphonecoredatarecipes
【解决方案1】:
我不得不停止考虑数据库来解决这个问题。我的解决方案涉及 2 个类:
属性:
* 列表名称
* 文章编号
* 排序顺序
关系:
* 文章 ;一对一
属性:
* 文章编号
* ....
关系:
* 列表 ;一对多
我查询 ArticleList 并在 sortOrder 上排序以获取特定提要/部分的文章列表。然后使用 valueForKeyPath: 获取文章属性(例如标题等)。
【解决方案2】:
我认为您需要删除 section 和 article 之间的直接关系,只需将 Article_Sections 表中的关系返回到 section 和 article 表。
【解决方案3】:
您可以添加实体“ArticleSectionPair”作为“Section”和“Article”之间的中介:
- 属性“sortValue”
- “section”与“Section”实体的一对多关系(及其反向“articlePairs”)
- “文章”与“文章”实体的一对多关系(及其反向“sectionPairs”)
使用属性“sortValue”和th,可以从一个section中获取ArticleSectionPairs的排序集合,并获取[sortedArticlePairs valueForKeyPath:@"article"]的文章。