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