3

在 CoreData 表上执行此查询的最有效方法是什么?要使用标准员工数据库模型——我想要所有包含职位描述为“厨师”的员工的部门的 DISTINCT 部门 ID。碰巧的是,这里只有一个相关的表(员工)——我实际上没有部门表,只有重复的部门 ID。

4

1 回答 1

5

给定您描述的模式,我将使用谓词(格式字符串)执行 fetch,@"jobDescription LIKE 'chef'"然后使用键值编码从结果数组中获取唯一值:

[result valueForKeyPath:@"@distinctUnionOfValues.departmentID"];

或创建一个集合:

NSSet *deparmentIDs = [NSSet setWithArray:[result valueForKey:@"departmentID"]];

根据问题的大小(有多少员工),在内存中执行最后一步可能会让人望而却步。此时,您必须创建一个部门实体并执行工作以确保将适当的员工连接到每个部门。然后,您可以使用谓词(格式字符串)获取 Departments,例如@"ANY employees.jobDescription LIKE 'chef'"获取具有厨师员工的部门。

于 2010-08-26T20:14:55.227 回答