J'ai une base de données MySQL où je stocke des informations qui sont entrées à partir d'une page web PHP. J'ai une page qui permet à l'utilisateur d'afficher une ligne existante et de faire des changements et de les enregistrer dans la base de données. Je veux connaître la meilleure façon de conserver les entrées d'origine, ainsi que la nouvelle mise à jour et les mises à jour ultérieures.Comment archiver les modifications apportées aux lignes du tableau?
Ma pensée est de faire une nouvelle table avec les mêmes colonnes que la première, avec un champ d'horodatage supplémentaire. Lorsqu'un utilisateur soumet une mise à jour, le script prend le contenu de la ligne de la table principale et les saisit dans la table d'archivage avec un horodatage, puis saisit les nouvelles valeurs dans la table principale. J'ajouterais également un nouveau champ à la table principale pour spécifier si la ligne a été éditée ou non. De cette façon, je peux faire une requête de la table principale et obtenir les données les plus récentes, et je peux également interroger la table d'archives pour voir l'historique des changements. Est-ce la meilleure façon d'y parvenir ou existe-t-il un meilleur moyen?
J'aime cette idée. J'ai fait un peu de test, et j'ai une question. Actuellement, ma table contient les données ajoutées par le réviseur, ainsi qu'un champ status et userid. Lorsque l'utilisateur ouvre l'élément pour la première fois, il définit l'état sur "en cours" ainsi que son ID. Comme ce sont des instructions UPDATE, elles provoqueront le déclenchement. Je ne veux pas capturer ces changements, mais plutôt lorsque l'utilisateur clique sur "Soumettre" et qu'il entre les données, ou fait une modification plus tard. Quelqu'un at-il un exemple de comment déclencher quand seulement certains champs sont mis à jour? – zoidberg