You can hard-delete an object, you can also use a boolean flag "deleted", you can use a datetime field called "deleted_at". You can also have a record per each deletion. Finally, you can just use events.
What's best?
See All 97 Episodes of "Andrzej on Software"