2010-08-26 19 views
3

在CoreData表上執行此查詢的最有效方式是什麼?要使用標準員工數據庫模型 - 我希望所有包含員工的部門的「DISTINCT部門標識」都包含工作描述「廚師」。碰巧,這裏只有一張表(員工) - 我沒有實際的部門表,只有部門ID是重複的。在CoreData中獲取不同的ID列表

回答

5

鑑於你所描述的模式,我會執行取得與謂詞(格式字符串),如@"jobDescription LIKE 'chef'",然後使用鍵 - 值編碼從結果數組獲得獨特的價值觀:

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

或創建一套:

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

根據問題的大小(多少員工),做內存的最後一步可能會被證明是禁止的。此時,您必須創建一個部門實體並開展工作,確保將適當的員工連接到每個部門。然後,您可以使用諸如@"ANY employees.jobDescription LIKE 'chef'"之類的謂詞(格式字符串)對部門進行獲取,以獲得擁有廚師員工的部門。

+0

謝謝!第二種建議的解決方案適用於我,但我決定重構以避免這種昂貴的操作。 – ed94133 2010-08-27 16:18:48

+0

感謝我的第二部作品gret – 2011-12-20 06:57:11