Получение четкого списка идентификаторов в CoreData - PullRequest
3 голосов
/ 26 августа 2010

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

1 Ответ

5 голосов
/ 27 августа 2010

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...