2009-02-02 6 views
2

J'essaie de trouver la meilleure façon de conserver l'historique/la révision des tables dans une base de données relationnelle.Révision de la table/historique?

J'ai fait de la recherche et de la lecture, et je ne sais pas quelle serait la meilleure façon de suivre les changements. Pour mes tables principales, je suis sûr que je me suis contenté d'une table de révision, pour suivre (voir photo) mais ce sont les tableaux de relations dont je ne suis pas sûr. Peut-être juste une table de vérification piste tenant les changements?

En regardant l'image ci-dessous, quelle serait la meilleure façon de conserver l'historique de la table "movies_has_actors"? Je ne peux pas simplement faire comme avec les deux tables principales (films, acteurs), car j'ai besoin de savoir quel MOVIE révision_id qui était l'actif au moment où la relation a été faite. Et si je veux jeter dans le suivi de quel utilisateur a ajouté la relation (table USER pas dans l'image de l'échantillon)? Je ne veux pas tout garder dans la table des relations elle-même, car cela va juste grossir et ralentir les requêtes ...! [Alt text] [1]

Donc, pour résumer, quelle est la meilleure façon de garder histoire, d'une table de relation?

salutations, Modano

Lien vers l'image: img115.imageshack.us/my.php?image=44623598nv1.jpg

[1]: Image

Répondre

3

dans SQL Server 2008, un nouveau fonctionnalité appelée CDC (Change Data Capture) CDC sur MSDN peut aider. CDC est une capacité à enregistrer les modifications apportées aux données de table dans une autre table sans écrire de déclencheurs ou d'autres mécanismes. La modification de capture de données enregistre les modifications comme insérer, mettre à jour et supprimer dans une table du serveur SQL. format.

Channel9 vidéo - http://channel9.msdn.com/posts/ashishjaiman/CDC-Change-Data-Capture-SQL-Server-2008/

+0

MSDN: http://msdn.microsoft.com/en-us/library/bb522489.aspx article de wikipedia sur CDC: http://en.wikipedia.org/wiki/Change_data_capture – Gerrit

0

Je pense que les tables de vérification sont une bonne solution. Si vous utilisez SQL Server 2008, consultez Change Data Capture. Ceci est une fonction de suivi automatique des modifications.

+0

Désolé, oublié d'ajouter à le message que j'utilise une base de données mySQL. –

+0

Ma première suggestion est la meilleure façon de savoir qui utilise une table de vérification. Chaque fois que vous modifiez la table, insérez un enregistrement dans la trace. L'autre façon serait de garder la piste d'audit dans la table d'association et d'avoir une identification de révision mais cela est coûteux et difficile à gérer. – JoshBerke

Questions connexes