2013-04-30 126 views
1

我有一个应用程序,它允许用户创建带有标题的文档并将作者分配给它。我试图防止从列表中导入新对象时将重复对象输入到我的核心数据库中。我试图按照Apples documentation中的建议进行操作,建议加载所有正在导入的对象,然后查询数据库以查看是否存在任何这些对象,然后适当地处理重复项。在他们的榜样,他们正在查询关闭单个属性:核心数据重复对象Handeling

[fetchRequest setPredicate: [NSPredicate predicateWithFormat: @"(employeeID IN %@)", employeeIDs]]; 

在我的情况,不过,我有一个定义一个唯一的对象两个属性:标题和作者。所以我不能简单地使用:

[fetchRequest setPredicate: [NSPredicate predicateWithFormat: @"(title IN %@) AND (author IN %@)", titleList, authorList]]; 

我知道我可以使用一系列或语句,但这似乎效率低下。

有关如何有效获取正确标题 - 作者配对的对象的任何想法?

+0

从技术上讲,在数据库中我有一个作者实体和一个文档实体。作者列表是独一无二的,但我试图确保他们的文档标题也是唯一的。 – Jbryson 2013-04-30 22:19:09

回答

0

听起来像你需要2个实体。文档和作者。文档具有标题属性以及与作者的关系。然后在导入时,它需要2个阶段,但这并不坏。

首先,您可以导入所有新作者,首先检查已存在的作者。

然后处理新文档,排除已存在的文档并与作者建立关系。

我不认为你需要尝试在这种情况下得到比这更聪明的东西 - 你只会使它复杂化。

+0

目前我确实有两个实体,一个是作者,一个是文档。然而,问题仍然是如何知道某个作者是否存在文档。我想我可以通过作者来验证诗作者,但我希望能够在一个查询中完成这一切。我确实想过创建作者姓名和文档标题的另一个(暂时)属性。然后我可以查询该属性。 – Jbryson 2013-04-30 22:24:05

+0

首先看起来像更多的SQL问题。弄清楚如何检索数据,然后如何在核心数据的上下文中应用该SQL。先在SQL论坛中提问,然后将结果返回到此处。 – bandejapaisa 2013-05-01 05:14:53