Bonjour à tous
Comme je l'ai déjà expliqué, mon site est actuellement géré de la façon suivante:
- les données variables sont gérées sur mon PC par l'intermédiaire de fichiers Excel
- ces données sont exportées sur le site sous la forme de fichiers XML
Le processus de modification est donc le suivant:
- je fais un ensemble de modifications sur mon PC
- quand elles sont cohérentes, je les exporte
Pour permettre de passer la main sur la gestion des données, j'ai décidé de mettre ces données dans une base MySQL. Cela permettra à tout autre personne disposant des droits d'accès ("administrateur") de modifier les données. Pour simplifier le problème, je suppose qu'il n'y aura qu'un seul administrateur à la fois qui se connecte, ce qui est une hypothèse acceptable dans le cas de ce site.
Mon problème:
si l'administrateur fait des modifications dans la base de données et que c'est cette même base de données qui est exploitée pour afficher les données aux utilisateurs, ceux-ci risquent de rencontrer une base incohérente pendant que l'administrateur est en train de faire des modifications. Ces modifications pouvant être longues (plusieurs heures quelquefois), un mécanisme de commitment me parait difficilement utilisable. Cela voudrait dire en pratique que l'administrateur ne peut pas interrompre sa mise à jour sous peine de devoir tout refaire.
Je pourrais bien entendu utiliser la base à l'usage exclusif de l'administrateur et fabriquer des fichiers XML lorsque l'administrateur considère ses modifications comme accomplies.
Une alternative aux fichiers XML: avoir des tables "admin" et des tables "users" et faire des mises à jours des tables "users" quand l'administrateur considère ses modifications comme achevées.
Ou bien deux bases de données et exporter la base admin dans la base users en fin de mise à jour.
Ou bien avoir un champ "temporaire" dans chaque table et faire un code (relativement complexe) pour que l'utilisateur ne voie pas les lignes "temp" mais que l'administrateur les voie de préférence aux autres.
Ou bien ...
Je suppose qu'il y a plein d'autres solutions pour traiter ce problème, aucune de celles auxquelles j'ai pensé ne me paraissant satisfaisante.
Pourriez vous me recommander une approche qui ait fait ses preuves?
Merci de vos conseils.
Comme je l'ai déjà expliqué, mon site est actuellement géré de la façon suivante:
- les données variables sont gérées sur mon PC par l'intermédiaire de fichiers Excel
- ces données sont exportées sur le site sous la forme de fichiers XML
Le processus de modification est donc le suivant:
- je fais un ensemble de modifications sur mon PC
- quand elles sont cohérentes, je les exporte
Pour permettre de passer la main sur la gestion des données, j'ai décidé de mettre ces données dans une base MySQL. Cela permettra à tout autre personne disposant des droits d'accès ("administrateur") de modifier les données. Pour simplifier le problème, je suppose qu'il n'y aura qu'un seul administrateur à la fois qui se connecte, ce qui est une hypothèse acceptable dans le cas de ce site.
Mon problème:
si l'administrateur fait des modifications dans la base de données et que c'est cette même base de données qui est exploitée pour afficher les données aux utilisateurs, ceux-ci risquent de rencontrer une base incohérente pendant que l'administrateur est en train de faire des modifications. Ces modifications pouvant être longues (plusieurs heures quelquefois), un mécanisme de commitment me parait difficilement utilisable. Cela voudrait dire en pratique que l'administrateur ne peut pas interrompre sa mise à jour sous peine de devoir tout refaire.
Je pourrais bien entendu utiliser la base à l'usage exclusif de l'administrateur et fabriquer des fichiers XML lorsque l'administrateur considère ses modifications comme accomplies.
Une alternative aux fichiers XML: avoir des tables "admin" et des tables "users" et faire des mises à jours des tables "users" quand l'administrateur considère ses modifications comme achevées.
Ou bien deux bases de données et exporter la base admin dans la base users en fin de mise à jour.
Ou bien avoir un champ "temporaire" dans chaque table et faire un code (relativement complexe) pour que l'utilisateur ne voie pas les lignes "temp" mais que l'administrateur les voie de préférence aux autres.
Ou bien ...
Je suppose qu'il y a plein d'autres solutions pour traiter ce problème, aucune de celles auxquelles j'ai pensé ne me paraissant satisfaisante.
Pourriez vous me recommander une approche qui ait fait ses preuves?
Merci de vos conseils.