我的數據庫有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