J'ai créé des tables de base de données (normalisées, sur un serveur MS SQL) et créé une interface Windows autonome pour une application qui sera utilisée par une poignée d'utilisateurs pour ajouter et modifier des informations. Nous allons ajouter une interface Web pour permettre la recherche à travers notre zone de production à une date ultérieure.Modification d'enregistrements de base de données par plusieurs utilisateurs
Je suis préoccupé par le fait que si deux utilisateurs commencent à éditer le même enregistrement, le dernier à valider la mise à jour serait le 'gagnant' et des informations importantes pourraient être perdues. Un certain nombre de solutions me viennent à l'esprit, mais je ne suis pas sûr si je vais créer un plus gros mal de tête.
- Ne faites rien et espérez que deux utilisateurs n'éditeront jamais le même enregistrement en même temps. - Peut-être jamais arrivé mais que faire?
- La routine d'édition peut stocker une copie des données d'origine ainsi que les mises à jour, puis les comparer lorsque l'utilisateur a terminé l'édition. Si elles diffèrent, afficher la mise à jour de l'utilisateur et de l'entreprise. - Deux copies de données doivent être stockées.
- Ajoutez la dernière colonne DATETIME mise à jour et vérifiez qu'elle correspond à la mise à jour, sinon affichez les différences. - requiert une nouvelle colonne dans chacune des tables pertinentes.
- Créez une table d'édition qui enregistre lorsque les utilisateurs commencent à modifier un enregistrement qui sera vérifié et empêche les autres utilisateurs d'éditer le même enregistrement. - nécessiterait une réflexion réfléchie sur le déroulement du programme afin d'éviter que les interblocages et les enregistrements ne soient verrouillés si un utilisateur quitte le programme.
Y a-t-il de meilleures solutions ou devrais-je choisir l'une de ces solutions?
Merci pour le partage. –