Во-первых, тегу не нужно иметь отдельный атрибут для отслеживания количества фотографий. Вы можете запросить отношения для этого количества.
Во-вторых, вы хотите установить -prepareForDeletion
в объекте Photo
, который проверяет, является ли это единственная фотография со ссылкой на тег, а затем удаляет ее, если это правда.
Аналогично, когда вы удаляете фотографию, в ее -prepareForDeletion
вы можете проверить, сколько фотографий находится в этом месте, и задействовать ту же логику.
В самой модели я бы тогда установил правило удаления равным нулю.