2012-05-14 91 views
1

我有實體組和聯繫人之間的多對多關係。一個組可以有多個聯繫人,並且一個聯繫人可以存在於多個組中。核心數據 - 無效刪除規則

現在,如果我要刪除一個組,我應該如何處理它所擁有的聯繫人的所有引用?

正如我所看到的那樣,有兩種選擇:使用無效規則,它將那些具有該組的聯繫人的已刪除組引用設置爲零。但是這種引入了微觀管理問題。如果任何一個組都沒有,我必須檢查每次列出聯繫人組。

因此,對我來說,更優雅的解決方案是,當一個組被刪除時,我會從聯繫對象中完全刪除組引用(?),以便它根本不會包含組的任何nil值。那可能嗎?

回答

4

但是這種引入了微觀管理問題。然後,我必須 檢查每次列出聯繫人組,如果任何組是 無。

否請參閱this answersimilar question。如果您爲兩個組的刪除規則 - >>聯繫人和聯繫方式 - >>團體之間的關係來抵消,則:

  • 刪除聯繫人將刪除包含它

  • 任何團體的接觸

    刪除組將從該屬於它的基礎框架(的NSArray,NSSet中,等)

集合對象的任何聯繫人中刪除該組從來沒有「零值」。它可能將NSNull單例存儲爲集合中的值,但這不是nullify刪除規則的作用。

這聽起來像無效規則適用於你的情況下的兩個關係。唯一需要關注的是當您刪除屬於給定組的所有聯繫人時,應該發生的情況,反之亦然。不屬於任何羣組的聯繫人是有道理的,但對於不包含聯繫人的羣組會發生什麼情況?如果一個沒有成員的組織對您的應用沒有任何意義,那麼您必須處理該案例。

+0

這正是我一直在尋找的。在我的情況下,如果一個組沒有任何聯繫,我希望看到該組在刪除最後一次聯繫時被刪除。有沒有自動的方法來做到這一點?或者我必須手動編寫代碼? – AceN