0

我有两个名为 Assignment 和 Question 的核心数据实体。分配实体具有分配详细信息,例如其名称、ID 等。问题表具有问题名称、ID 等。分配与问题具有一对多关系。当我尝试从服务器获取作业详细信息时,我得到作业和问题数据,并且作业和问题实体都在核心数据存储中更新。请注意,两个不同的作业可能共享相同的问题。

现在让我们考虑一下,作业 1 有 id 为 1,2 和 3 的问题。而作业 2 有 id 为 4、5 和 1 的问题。在我的问题表中,它只有 5 个条目,因为 id 为 1 的问题在两者中都很常见作业。

我正在使用 NSFetchedResultsController 在 UI 上填充它。我在以添加到核心数据存储(数据库)的相同顺序获取问题时遇到问题

例如:对于作业 2,我需要 oder 4,5 和 1 中的问题。没有唯一键可以用来创建排序描述符。没有排序描述符我无法创建 NSFetchRequest,没有它就不可能创建 NSFetchedResultsController . 对解决这个问题有什么想法吗?

4

1 回答 1

1

在我看来,最好的模式是创建一个新实体 ,AssignmentQuestion它与 具有多对一关系Assignment和多对一关系Question,以及序列号属性。

Assignment <--------->> AssignmentQuestion <<--------> Question
|--name                 |--sequence                   |--text
|--id                                                 |--id
|--etc.                                               |--etc
于 2013-01-16T11:03:58.957 回答