J'ai une application CRUD existante à laquelle j'ai été chargée de mettre en œuvre la "gravure de tombeau". J'ai besoin d'un moyen pour permettre à un utilisateur de ramener une page donnée de données à l'état précédent.Implémenter l'annulation de données dans l'application CRUD existante
Dites que j'ai le prénom, le nom et le numéro de sécurité sociale sur une page de cette application. L'utilisateur A met à jour le champ Nom. Plus tard, l'utilisateur B remarque que le nouveau nom de famille est différent et veut voir qui l'a modifié et le renvoyer si nécessaire.
Je ne suis pas familier avec cela, donc si je suis manquant ou mal utilisé certains termes, pardonnez-moi.
Cette application a un backend MS SQL et la DAL est principalement SPROCS. À l'heure actuelle, il n'y a pas d'archivage ou de lapidation.
Je pensais juste faire une table pour chaque table existante appelée tblPerson -> tblPersonTombstone et ensuite la partie roll back lirait à partir de cette table. Malheureusement, les concepteurs de base de données d'origine l'ont conçu de telle sorte qu'une seule page de l'application pourrait contenir des informations provenant de 2 ou 3 tables différentes. Ainsi, j'imagine, j'ai besoin d'une approche plus basée sur les transactions.
Toute direction ou pointeur sera grandement appréciée. Suis-je sur la bonne voie avec ma pensée? Peut-être que je suis trop compliquer? Comment les autres l'ont-ils fait?
Je vois ce poste How to implement ‘undo’ operation in .net windows application? et aussi celui-ci New CodePlex project: a simple Undo/Redo framework mais je suis concerté que ni l'un ni l'autre ne correspondent à ma situation actuelle. Je ne cherche pas à laisser les utilisateurs cliquent sur ctl + z. Je dois les laisser ramener une page entière à un état antérieur. Si je me méprends sur l'utilisation de ces deux exemples, veuillez le dire.
Merci pour le temps.
Vérification? Merci! Parfois, connaître le mot-clé correct est la moitié de la bataille. +1 –
De rien! –
On dirait qu'ils veulent que les rollbacks soient un processus manuel, donc une piste d'audit est tout ce dont j'ai besoin. On dirait que je vais explorer # 2. Y a-t-il un moyen de développer votre plugin ORM? J'utilise Linq To SQL comme ORM et j'apprécierais la direction. –