CoreData - 建模映射表

Posted

技术标签:

【中文标题】CoreData - 建模映射表【英文标题】:CoreData - Modeling mapping table 【发布时间】:2011-12-17 19:57:31 【问题描述】:

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

在数据库术语中我有

“文章”表 Sections”表和一个 “Article_Sections”表将文章映射到具有额外排序字段的部分。

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

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

但是,我不知道如何得出排序顺序。非常感谢任何有关如何执行此操作的提示。提前致谢。

桑迪普

【问题讨论】:

【参考方案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"]的文章。

【讨论】:

以上是关于CoreData - 建模映射表的主要内容,如果未能解决你的问题,请参考以下文章

Coredata toMany关系映射问题 - Swift

如何在 CoreData 中对实体之间的相对分数进行建模

具有多个天气数据时间框架的 CoreData 对象建模

coreData为关系表添加其他属性的多对多关系

CoreData 瞬态关系示例

使用 2 个类将对象映射到 CoreData