Maintenir l'historique des modifications apportées aux enregistrements dans MySQL
Les utilisateurs de MySQL sont souvent confrontés au dilemme du suivi des modifications apportées aux enregistrements dans une base de données. Cela devient particulièrement pertinent lorsqu'il s'agit de garantir l'intégrité des données, de fournir des pistes d'audit ou de récupérer des modifications accidentelles. Pour relever efficacement ce défi, explorons une solution efficace et simple.
Création de tables d'historique avec des déclencheurs
L'approche proposée consiste à créer une table d'historique pour chaque table de données que vous je veux suivre. Cette table d'historique reflétera la structure de sa table de données correspondante, en ajoutant trois colonnes supplémentaires : « action » pour désigner l'opération (insertion, mise à jour ou suppression), « révision » pour le séquençage et « dt_datetime » pour capturer l'horodatage de l'opération.
Pour conserver l'historique, des déclencheurs sont configurés sur la table de données. Lors des opérations d'insertion, de mise à jour ou de suppression, les déclencheurs insèrent une nouvelle ligne dans la table d'historique, capturant les informations pertinentes ainsi que les anciennes et nouvelles valeurs des champs modifiés. Il convient de noter que nous utilisons le moteur MyISAM à des fins de séquençage.
Interrogation des enregistrements d'historique
Pour afficher l'historique d'un enregistrement spécifique, joignez simplement la table d'historique au table de données sur la colonne de clé primaire. En filtrant sur le numéro de révision, vous pouvez récupérer des révisions spécifiques ou créer des vues pour présenter les modifications apportées au fil du temps pour des colonnes particulières.
Exemple
Supposons que nous ayons un tableau appelé « Produits » avec les colonnes « ID », « Nom » et « Quantité ». Pour suivre les modifications apportées à cette table, nous créons une table d'historique correspondante appelée "Products_History" avec les colonnes supplémentaires "action", "revision" et "dt_datetime".
Après avoir configuré les déclencheurs, toute insertion, mise à jour , ou l'opération de suppression sur « Produits » sera enregistrée dans « Products_History ». Nous pouvons ensuite joindre ces deux tableaux dans la colonne « ID » pour afficher l'historique des modifications pour un produit donné.
Avantages
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!