3

CoreDataテーブルでこのクエリを実行するための最も効率的な方法は何ですか?標準の従業員データベースモデルを使用するには-職務記述書「シェフ」を持つ従業員を含むすべての部門のDISTINCT部門IDが必要です。たまたま、ここに関連するテーブル(従業員)は1つだけです。実際には、部門テーブルはなく、繰り返される部門IDだけがあります。

4

1 に答える 1

5

説明するスキーマが与えられた場合、次のような述語(フォーマット文字列)@"jobDescription LIKE 'chef'"を使用してフェッチを実行し、キーと値のコーディングを使用して、結果の配列から一意の値を取得します。

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

またはセットを作成します。

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

問題のサイズ(従業員の数)によっては、メモリ内で最終ステップを実行することは法外な場合があります。この時点で、Departmentエンティティを作成し、適切な従業員を各部門に接続するための作業を行う必要があります。@"ANY employees.jobDescription LIKE 'chef'"次に、シェフの従業員がいる部門を取得するように、述語(フォーマット文字列)を使用して部門のフェッチを実行できます。

于 2010-08-26T20:14:55.227 に答える