All depends on the business requirements and the industry they (the business) server.
Record retention is sometimes mandated by the industry you are in or by your employer if they have a sound thoughtful IT department and associated governance policies.
Shipping old records off to a storage table is also a solution when records must be retained for a long time.
This is not something i would guess about because it can have significant legal implications for the business.
Good thing is that your asking the right questions.
1 of 1 people found this helpful
My mantra? - 'Never delete. Ever.'
The reasons to delete are 'Storage space', 'Memory', 'Processing speed', 'Clarity', 'Whatever'... All of them progress far, far, faster than anybody's needs to even occasionally want to 'look back on/report on/show the solicitor/prove that actually we have changed a lot since I took over' Reports.
Tag all 'Deletions' as 'deleted' rather than actually delete them, and make anyone with a counter-argument go through hell and high water to reverse that.
Actually, there are at least a few reasons to use an archiving strategy instead of holding everything in one database.
3) Recovery / migration to a new version
Note I said, "archiving strategy", not deletion. If anyone wants to look through the archives for a previous year (or other appropriate period), they can. Just keep a separate data file with those records in it and point an interface layout to it.
Is it always appropriate to archive rather than keep? Nah. Is it never appropriate to delete? Nah. Again, depends on the business rules and needs. I don't care if I delete records off of my shopping list. But the Inspector General might care a lot if you delete records of correspondence that are involved in a lawsuit.
Agreed. "the Inspector General" = "Hell or High Water"
I don't just tag a record as "inactive" (or "deleted"), I have a field in every table I create called "Obsolete". It's a Date-type field, and it immediately follows its siblings "Created" and "Updated" in my field list. I've got a standard script that enters the current date in "Obsolete" at the click of a button (or deletes it at the click of that same button + modifier key). And there's another Calculation field with Number result called "Active" that's empty whenever "Obsolete" has a date in it or displays "1" (formatted as a checkmark) if "Obsolete" is empty. This lets you easily find active records and also lets you know when each inactive record was declared obsolete.
If you'd like, you can go a step further and create an "Obsoleter" field into which that same button can enter the Account Name of the person who declared the record obsolete.