I am building a system that will use a commenting based ticket system. I would like to get some opinions around the idea of flagging a user as deleted or removing the record completely.
Ideally I want to keep the system free of old accounts but at the same time by deleting a user the commenting within the ticket system may not make sense.
Has anyone come up with a solution to this type of problem. My ideas so far:
- Delete the users account, comments and all other relevant data.
- Flag the user as deleted and create a brand new account if they subscribe again.
- Flag the user as deleted but if the user was to try to subscribe again update and unflag as deleted instead of adding a new one.
- Delete the user account only. Then when fetching comments etc. check for an associated id, if no result found then display the comment with a message “the users account has been deleted”.
What do you think?
I would say that the third option is the best choice
My reasoning for this is any tickets stored in the database should be kept for the life of the database, if you attempt to delete a user from the database, you will remove that users reference to any tickets in the database.
(Thats if the database will let you delete it since the user’s id will be linked to any tickets he/she may have created)
When that user goes to create a new account in the ticketing system, the tickets that he may have created months ago have dissapeared and may now have been created by null.