Agreed — I don’t know that I’d recommend including deleted_at in the constraint at all. If you need those fields’ values to become “available” again after deletion, I’d add a delete method on the specific model that reassigns them — appends a timestamp or ‘deleted’ if they’re a string, and then calls super so it goes through the soft deletion logic.

Senior Software Engineer | www.adriennedomingus.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store