When users delete their accounts, what should you do with their stuff?
I see a few approaches:
1. Recursively delete all their stuff
This causes problems. We run competitions, and if someone deletes their account and we delete their entry to a competition, it disappears from the site possibly in between winning and receiving their prize. If they started a discussion in a forum, all replies would disappear too. It seems like the wrong approach and in testing we've seen things break in this case.
2. Assign their stuff to a "Deleted User" account.
We could make a special user called "Deleted User" who inherits all stranded objects in the system. We have things like awards that can be won though and it seems strange to have them awarded to a deleted user. This approach would seem to prevent application errors since stuff always belongs to a user.
3. Soft-delete users
Maybe keep their username but add a "Deleted" indication next to it. We'd preserve an account as it was but just show people that the user has left our system.
What strategies have you used and would you recommend to handle a user deleting their account?
Answer
A soft delete, such as a strike-through in the user name, is the best option for preserving the overall content of the site (like contests and discussions). Deleting some comments out of a thread can make the remaining comments incomprehensible, after all. This option works if it's ok to preserve the fact that such-and-such user once existed in your system.
If it is important for a user to be able to delete the fact that he was there -- i.e., leaving the user name isn't acceptable -- then I recommend a rename that preserves uniqueness. Just renaming everybody "deleted user" causes problems; imagine the case where two or three deleted users participate in the same comment thread. Who's who? Instead, I suggest using number suffixes, so you can tell that deleted-414 is arguing with deleted-761 and that deleted-521 and deleted-71 both entered a contest.
No comments:
Post a Comment