2010-08-26 1 views
3

Каков наиболее эффективный способ выполнения этого запроса в таблице CoreData? Чтобы использовать модель базы данных стандартных сотрудников, я хочу, чтобы идентификаторы отдела DISTINCT для всех отделов содержали сотрудников с описанием работы «шеф-повар». Как бы то ни было, здесь есть только одна таблица (Сотрудники) - на самом деле у меня нет таблицы отделов, но повторяются идентификаторы отделов.Получение отличного списка идентификаторов в CoreData

ответ

5

Учитывая схему вы описали, я бы выполнить выборку с предикатом (строка формата), как @"jobDescription LIKE 'chef'", а затем использовать кодирование ключ-значение, чтобы получить уникальные значения из результирующего массива:

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

или создать набор:

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

в зависимости от размера задачи (сколько сотрудников), делая последний шаг в памяти может оказаться непомерно высокой. На этом этапе вам нужно будет создать подразделение и выполнить работу, чтобы убедиться, что вы подключили соответствующих сотрудников к каждому отделу. Затем вы можете сделать выборку департаментов с предикатом (строка формата), например @"ANY employees.jobDescription LIKE 'chef'", чтобы получить отделы с сотрудниками шеф-повара.

+0

Спасибо! Второй из этих предлагаемых решений работал для меня, но я решил реорганизовать, чтобы избежать дорогостоящих операций, подобных этому. – ed94133

+0

Спасибо, второй работает для меня, я был серфингом для группы .... –

 Смежные вопросы

  • Нет связанных вопросов^_^