You don't want to cascade that deletion to a record of credit card charges, but you also need to make sure that all queries respect that the user record might now be deleted - ie make it an outer-join.
It's far more robust to add an active/inactive field.
The longer an organization has been around, the more interconnected the database is, and the more consequent changes are needed to accommodate a core database change.
I would be surprised if many many organizations have some hack like this under the covers.
You make it sound like developers doing things the wrong way is the exception instead of the norm.
Good developers don't, but every place I've worked at has a few chunks of the software by people who didn't know or care enough to do things the right way.
Probably not. I bet that goes for so very many organizations. It is far easier to reinstate an accidentally (user) deleted account if it is merely marked as deleted than if it were truly deleted.
Now, how NYT is handling this is ... well, it's bad.
That isn't what he said.
He said their inability to delete an account is due to poor design of their data schema by a well intentioned developer.
So I'm torn, because I think there may just be a major problem I've not yet grown my apps big enough to suffer. Anyone have thoughts either way?