2014-04-24 52 views
1

我在SQLite的2個數據庫表和使用核心數據/ NSManagedObjects:確實核心數據自動更新一個多對多的關係,節約

Users 
user_id 
name 
belongsToGroups (many groups) 

Groups 
group_id 
title 
groupMembers (many users) 

通過使用核心數據保存組並添加用戶(加他一組),像這樣:

Groups *coreData = nil; 

coreData = [NSEntityDescription insertNewObjectForEntityForName:@"Groups" inManagedObjectContext:context]; 
request = [NSFetchRequest fetchRequestWithEntityName:@"Users"]; 
request.predicate = [NSPredicate predicateWithFormat:@"user_id = %@", user_id]; 

results = [context executeFetchRequest:request error:&error]; 


coreData.group_id = group_id 
coreData.title = title 
[coreData addGroupMembersObject:[results lastObject]]; 

它是正確的說,核心數據管理用戶在許多團體和羣體中擁有衆多用戶與上面的代碼?

+1

是的。通過查看你的關係,顯然這些實體之間存在反向關係。所以核心數據爲你管理它們。 –

+0

太棒了。 – cdub

回答

3

是的,如果關係設置爲相反的關係彼此。 修改一個關係會自動更新反比關係。

備註:我稱之爲實體「用戶」和「組」的,因爲 實體的每個對象表示用戶或組。我也會(但這可能是一個問題 )稱爲關係只是「組」和「用戶」。

+0

現在,如果我只能得到解析PFRelations工作相同... – cdub

+0

@chris:我沒有經驗與解析,所以我無法幫助PFRelations。我建議你把它作爲一個單獨的問題發佈。 –

+0

很酷,非常感謝 – cdub