Suppose that user Mr. Curious posts a question on Stack Overflow.
Maybe their question looks like this:
How do we flatten a list of lists? (in python)
For example, if our input is
[[1, 2], [99, 55]], How do we obtain
[1, 2, 99, 55]as output?
Now, a user named Mrs. Wise (different than Mr. Curious) writes a substantial answer (more than 500 characters) to the question.
After that, Mr. Curious deletes their own question.
No moderator complains about the question. The question is never reported (flagged).
Mr. Curious deletes their question anyway.
One of the nice things about Stack Overflow is that someone can Google "python flatten nested lists." A Stack Overflow post is often in the top 10 sorted search results.
If a user is allowed to delete their own question, then all of the answers are destroyed with it. If you use a search engine to search for "python flatten nested lists," you will not be able to find those answers anymore.
Maybe after a few years, users get embarrassed about their former naivete, or mistakes.
However, other users can learn from their mistakes, as long as the thread does not get deleted.
I think that the first time an answer is posted in response to a question, it might be nice if the back-end did the following:
- Check if the answer is substantial (500 characters or more is a rough heuristic)
- If the answer is substantial, change the behavior of
delete questionfeature for Mr. Curious
- If Mr. Curious deletes the question, make it the front-display the user-name of a faux user named something like ShyUser
Mr. Curious's question would remains publicly visible, but the username of Mr. Curious would no longer be visible on the front-end.
Anytime people get shy, or embarrassed, about their questions, and delete the question, the front-end makes it look like ownership is transferred to ShyUser
ShyUser need not be an actual account. Instead, a boolean, like "
HideUsername", could be an under-the-hood attribute of the question. In a SQL data-base, if questions are stored in a table, "
HideUsername" would just be a new column for questions.
Moderators will still be able to flag and delete questions owned by ShyUser which are inappropriate.
The back-end user-id associated with the question need not change.
If ShyUser would normally have their account rescinded for abusing the system, then Mr. Curious loses their account instead.
Really, it is Mr. Curious's user-id under-the-hood.
The question simply has a new attribute, which if true, displays a fake user-name instead of the real one.
"Deleting" your own question would simply anonymize you.
True delete happens if the delete action is executed by a moderator, not the asker, or if the asker attempts to delete a reported/flagged question, or there are no substantial answers.
I am not sure that ShyUser is the best name; feel free to choose an alternative.