我的数据库有3个实体:照片,地点(拍摄照片的地方)和标签(照片)。核心数据删除规则
的每张照片都在其中已经采取了地方的关系。 每个地方都有一组照片。
每张照片都有一组标签,每个标签都有一组照片。这是一种多对多的关系,因为单张照片可以有多个标签,并且标签可以与多张照片相关联。现在
,我无法找出正确的删除规则,这种行为:
- 我想直接删除照片只有实体。
- 如果相关的地方有其他照片,它不应该被删除。如果照片是该地点的最后一张照片,则应删除照片。
- 它的相关标签出现在其他照片中,不应删除,直到没有其他照片关联为止。
- 此外,在标签实体中,我有一个属性可以跟踪与其相关联的照片数量(当我添加新照片并且还在照片的prepareForDeletion中时,我更新此属性)。
有什么建议吗?
我用了“numberOfPhotosTagged”属性进行排序标签(最常用的第一)。这是那种描述: [NSSortDescriptor sortDescriptorWithKey:@“numberOfPhotosTagged”上升:NO] – Ciampo 2012-01-03 19:43:34
啊,你应该能够使用'标签.count'作为一个排序描述符,而不必保持同步值。没有测试,所以没有保证,但它*应*工作。 – 2012-01-03 19:45:09
因为我在排序标签,我用'[NSSortDescriptor sortDescriptorWithKey:@“taggedPhotos。@ count'ascending:NO]',但程序结束白衣这个错误:'关键路径包含KVC聚合,不应该有一个;无法处理标记的照片。@ count' – Ciampo 2012-01-04 08:31:01