我最近在想这个问题。我对以下核心数据的实现存在的长期问题感到关切.
假设我们有一个任务 NSManagedObject
,它与相册对象有一对一的关系,取消删除规则。然后,相册与具有相同删除规则的照片对象有一对多的关系.
问题是理论上的。如果任务对象被删除,但是开发人员没有手动删除与任务相关的相册和Photo对象,会发生什么?是否存在这样的数据损坏的可能性?还是核心数据的规模会不断扩大,而不会抱怨?
谢谢你事先的帮助。
发布于 2014-05-28 08:44:29
如果任务对象被删除,但是开发人员没有手动删除与任务相关的相册和Photo对象,会发生什么?
然后适用正常的“无效”行为。从Album
到Task
的逆关系被设置为零,但没有其他变化。使用“空值”,当删除相关对象时,关系被设置为零。
是否存在这样的数据损坏的可能性?
那么,您将得到一个没有关联Album
的Task
。这是否会被认为是腐败取决于你的具体要求。如果每个Album
都必须有一个Task
,那么您可能会认为它是腐败的。另一方面,如果这种关系是可选的,那么让它为零是好的。在这种情况下,底层持久存储文件(可能是SQLite)不会比任何其他情况下更容易损坏。
还是核心数据的规模会不断扩大,而不会抱怨?
删除托管对象不会使持久存储文件增长。如果您的意思是,相关的Album
和Photo
对象是否仍然存在,那么是的,因为这就是您所描述的设计的工作方式。这是否是一个问题,再次取决于您的具体需求。
https://stackoverflow.com/questions/23916208
复制相似问题