In most of the projects I work on, when ‘deleting’ a record, it’s preferred to mark it as deleted than physically deleting the record. This makes re-instating a record easier. The common practice is to add a status field to every record.
In doctrine, this can be done with SoftDelete.
When defined, a column ‘deleted_at’ is automatically created to the table. When deleting the record, this field is automatically updated to the current timestamp.
MyTable: actAs: SoftDelete: ~ columns: .....
I wish I had discovered this earlier! it really saves my coding time!