Mysql
 sql >> Base de données >  >> RDS >> Mysql

Stockage efficace des révisions d'objets relationnels

Si c'est purement à des fins "d'archivage", alors peut-être qu'un tableau séparé pour les révisions est préférable.

Toutefois, si vous devez traiter les révisions précédentes de la même manière que les révisions actuelles (par exemple, si vous souhaitez donner aux utilisateurs la possibilité de rétablir un produit à une révision précédente), il est probablement préférable de conserver une seule table de produits plutôt que de copier des données entre les tableaux. Si vous vous souciez des performances, c'est à cela que servent les index.

Vous pouvez créer une clé primaire composée pour la table des produits, par ex. PRIMARY KEY (product_id, revision) . Peut-être un proc stocké pour trouver la révision actuelle - en sélectionnant la ligne avec la plus haute revision pour un product_id particulier —sera utile.