1

我在实体组和联系人之间存在多对多关系。一个组可以有多个联系人,一个联系人可以存在于多个组中。

现在,如果我要删除一个组,我应该如何处理对其持有的联系人的所有引用?

正如我所看到的,有两个选项:使用 nullify 规则,这会将删除的组引用设置为 nil 对于那些拥有该组的联系人。但是这种引入了一个微观管理问题。然后,我必须在每次列出联系人组时检查是否有任何组为零。

所以对我来说,更优雅的解决方案是,当一个组被删除时,我会从联系人对象中完全删除组引用(?),这样它就不会包含任何组的 nil 值。那可能吗?

4

1 回答 1

5

但是这种引入了一个微观管理问题。然后,我必须在每次列出联系人组时检查是否有任何组为零。

不,请参阅类似问题的答案。如果您将 Groups->>Contacts 和 Contacts->>Groups 关系的删除规则设置为无效,则:

  • 删除联系人将从包含该联系人的任何组中删除该联系人

  • 删除组将从属于它的所有联系人中删除该组

Foundation 框架中的集合对象(NSArray、NSSet 等)从不具有“nil 值”。可以将 NSNull 单例存储集合中的值,但这不是 nullify 删除规则所做的。

听起来无效规则适用于您的情况中的两种关系。您唯一需要关心的是当您删除属于给定组的所有联系人时会发生什么,反之亦然。不属于任何组的联系人是有意义的,但是不包含联系人的组应该怎么办?如果没有成员的组对您的应用没有任何意义,您将不得不处理这种情况。

于 2012-05-14T21:08:44.393 回答