Quelle est la meilleure façon de mettre en œuvre la suppression logicielle?

De travail sur un projet en ce moment et nous avons à mettre en œuvre la suppression logicielle pour la majorité des utilisateurs (rôles d'utilisateur). Nous avons décidé d'ajouter un is_deleted='0' champ sur chaque table dans la base de données et mis à '1' si particulier des rôles de l'utilisateur de frapper un bouton supprimer sur un enregistrement spécifique.

À l'entretien, à présent, à chaque SELECT requête aurez besoin pour s'assurer qu'ils ne comprennent pas les documents where is_deleted='1'.

Est-il une meilleure solution pour la mise en œuvre de la suppression logicielle?

Mise à jour: je tiens également à noter que nous avons une base de données d'Audit qui effectue un suivi des modifications (sur le terrain, ancienne valeur, la valeur à neuf, du temps, de l'utilisateur, ip) pour toutes les tables/champs dans la base de données d'Application.

InformationsquelleAutor Josh Smeaton | 2008-09-16