Достаточно обнулить, и многие ко многим звучат правильно. Тем не менее, конкретное ограничение, которое вы хотите (удаление сирот), не может напрямую применяться основными данными, поэтому вам нужно выполнить небольшую очистку самостоятельно.
В частности, реализуйте willSave
в ваших классах сущностей, и пусть каждый объект проверяется: не удален ли я; и нет ли у меня связанных (товаров / каталогов)? Если так, удалите себя. (Не удаленный тест важен, чтобы избежать бесконечного цикла willSave
с.)
Это откладывает удаление потерянных каталогов или продуктов до экономии времени. Это, вероятно, не проблема.