Bonjour,
Désolé si je ne suis pas dans le bon forum puisque ma question n'est pas spécifique à PostgreSQL mais je ne sais pas trop quel forum utiliser pour cette question.
Je suis à monter une interface graphique comme client à une base de donnée. Soit un formulaire semblable à une facture avec des informations sur une personne et des lignes contenant des achats affichés dans une liste. La liste est associé à un tableau qui est rempli à l'ouverture du formulaire par une requête sql. L'utilisateur peut ajouter, modifier ou supprimer des lignes et je dois pouvoir identifier les modifications survenues afin de faire les mises à jour dans la base lorsque l'utilisateur validera le formulaire.
Je peut voir plusieurs possibilités pour ce genre de cas (qui j'imagine est très courant).
1- avoir un tableau parallèle pour chaque cas (un contenant les lignes ajoutées, un pour les lignes modifiées et un pour les lignes supprimées). Cette méthode implique de devoir synchroniser 4 tableaux pour le cas où l'utilisateur ajoute une ligne puis la modifie et fini par la supprimer.
2- ajouter un champ (statut) invisible pour l'utilisateur dans chaque ligne contenant un code indiquant si c'est une nouvelle ligne ou une modification (par exemple 0 pour une nouvelle, 1 pour une modifiée). Il faut tout de même un tableau parallèle pour gérer les suppressions puisque la ligne supprimée ne doit plus apparaître dans la liste affichée par le formulaire.
3- faire les mises à jour en temps réel avec la base de données. Ceci implique que les modifications se passe à l'intérieur d'une transaction et de faire un COMMIT ou ROLLBACK selon que l'utilisateur valide ou annule le formulaire. L'autre problème est que le formulaire peut être affiché passablement longtemps si l'utilisateur décide de prendre une pause ou même de quitter le travail en laissant le formulaire ouvert...
Il y a probablement d'autres possibilités et c'est là que j'ai besoin de vous
Merci
Partager