【发布时间】:2010-03-10 16:51:18
【问题描述】:
我在 iPhone 上有一个复杂的核心数据图。一个用户实体有很多其他实体,这些实体相互关联,具有多种关系等......
我的问题是如何在删除用户实体时删除所有相关实体。
提前致谢!
【问题讨论】:
-
“复杂的核心数据结构”是指你有一棵树吗?你再模糊不过了。你在问什么???
标签: iphone core-data data-modeling ios-simulator
我在 iPhone 上有一个复杂的核心数据图。一个用户实体有很多其他实体,这些实体相互关联,具有多种关系等......
我的问题是如何在删除用户实体时删除所有相关实体。
提前致谢!
【问题讨论】:
标签: iphone core-data data-modeling ios-simulator
在您的用户实体中,将每个关系删除规则设置为“级联”。
另外,请参阅 this answer 至 iPhone Core Data: Cascading delete across a many-to-one relationship。
【讨论】:
您将用户实体端的delete rule 设置为级联。当用户实体被删除时,与删除规则级联相关的所有其他实体也将被删除。如果它们同样与其他实体有关系,您也可以将这些关系的删除规则设置为级联。当您删除最顶层的节点时,这将删除整个逻辑树。
例如
user--(phoneNumbers,Cascade)->>phoneNumber
user<--(user,nullify)--phoneNumber
删除用户触发删除电话号码,但删除电话号码只是取消与用户的关系。否则用户实体不受影响。
如果你有一棵树……
user--(phoneNumbers,Cascade)->>phoneNumber--(phoneNumbers,Cascade)->>areaCodes
...然后删除用户会删除其所有电话号码,删除电话号码会导致删除其所有区域代码
【讨论】: