If you’re requesting a user create an account, you should also allow that user to delete the account. It’s not a one-sided contract. The big guys do it for a reason. Sure Facebook would rather you turn off your account for a break, but you can still nuke the whole thing.
I tried to find a design pattern that touches on account management. UI Design Patterns had a reference to Google’s account deletion process, but nothing of substance.
I looked around and a general rule of thumb seems to mirror what Google’s message gives users — you’ve deleted your account, but you can still resurrect it. Come back whenever you like, within reason, and we’ll set that deleted flag right back to zero.
But give users that option. Here’s how the design pattern might read for user account deletion.
Design Pattern Outline for User Deletion
- Give a user a means to delete their account (not suspend, but actual deletion).
- Be explicit with the user that the deletion will be completed, in full after 30 days. They can reactivate their account prior to that date so as not to lose any data. Force them to agree to that message.
- Set a field on the user table with a delete_on date field to now().
- This now date will be checked nightly to see if it is greater than 30 days. If it is, then delete the user information from the table.
- Give the user the ability to login to the site during the grace period. If they choose, they can reinstate their account, which would purge the date from the delete_on field.