I think I should now add what I believe are several valid reasons deleted records should be left alone.
I already mentioned a possible upgrade to C/S. Since you may decide to upgrade, you might later have to change your methodology. Most database servers simply don't have the concept of deleting and restoring records.
Recalling records which a user deleted accidentally is too complicated - it requires an entire sub-system, to distinguish the one desired record out of thousands, perhaps. Better tell them to be careful, and have confirmation dialogs. Another important part is to do frequent backups.
Deleted records can dissapear at any time anyway, when you do the monthly or weekly PACK maintenance. This command has no option to eliminate only records deleted, for instance, more than a week ago.
As to alternatives, if you really want to keep the ability to recall "deleted" records, you might add an additional field ("MyDeleted" or something similar), which is then under your control. You would set a filter on
NOT MyDeleted. This solves some of the other problems. For instance, this field can still be used on a C/S system, and you decide when you "really" want to delete them (permanently, at least from the POV of the end-user), by issuing the DELETE command.
Greetings,
Hilmar.
Difference in opinions hath cost many millions of lives: for instance, whether flesh be bread, or bread be flesh; whether whistling be a vice or a virtue; whether it be better to kiss a post, or throw it into the fire... (from Gulliver's Travels)