Я работаю в приложении Symfony2 (используя Doctrine), где он содержит следующие объекты:
C (имя, описание, isDeleted)
A-> B-> C
Одним из требований Приложения является то, что мы должны хранить в базе данных все строки и просто устанавливать их как удаленные, если нам нужно удалить A, B или C из базы данных.
В настоящее время каждый объект имеет службу менеджера, которая позволяет нам управлять и работать с объектами.
Однако, когда нам нужно удалить один элемент сущностей A (isDeleted = true), мы должны вызвать действие для установки как isDeleted = true всех дочерних отношений, в этом конкретном случае нам нужно установить как удаленные B и C.
Есть ли какой-либо шаблон дизайна или хорошая практика (с помощью диспетчера событий, события жизненного цикла доктрины или служебного пути) для достижения этого? Чтобы сохранить код в чистоте и обслуживании, если нам нужно добавить больше отношений.
Благодарю.
Я думаю, что Soft Delete Extension достаточно хорош для этого
https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/softdeleteable.md
http://doctrine-mongodb-odm.readthedocs.org/en/latest/cookbook/soft-delete-extension.html