2010-03-10 11 views
1

Est-ce une bonne pratique d'avoir des horodatages pour la dernière mise à jour de chaque table?last_update horodatage pour chaque table?

Ou doivent-ils être réglés là où c'est vraiment nécessaire? Comment puis-je savoir où j'ai besoin d'un horodatage de mise à jour plus tard? Pour quel type d'information ont-ils du sens?

Répondre

2

Les horodatages de lignes sont utilisés pour le versionnage de lignes dans les situations où vous avez un verrouillage d'enregistrement optimiste; c'est-à-dire 2 utilisateurs éditant le même enregistrement en même temps.

Vous pouvez détecter si la version de base de données a été modifiée en examinant l'horodatage de ligne en cours avec l'horodatage trouvé lors de la récupération de la ligne à partir de la base de données.

1

Il est préférable de la conserver dans les tables utilisées pour capturer les transactions. Cela peut fonctionner pour la journalisation/sécurité ou peut être utilisé pour gérer la concurrence.

0

Je pense que la vraie question est de savoir à quoi vous voulez utiliser ces horodatages. Si votre application n'en a pas vraiment besoin, je ne vois pas d'arguments solides en faveur du stockage et de la maintenance de ces données.

0

Je pense que c'est une pente glissante pour commencer à ajouter des horodatages "last_updated" aux tables. Donc vous pourriez avoir des gens demandant "quand cette rangée a-t-elle été changée?" mais dès que vous ajoutez une colonne last_updated, ils vont demander: "OK, il a été taché il y a 6 jours Qu'est-ce que a été changé?". Alors maintenant, vous devez configurer une table "historique" avec toutes les colonnes qui ont changé. Mais ensuite ils demandent, "Eh bien, la colonne 'foo' a été changée il y a 6 jours, quelle était la valeur précédente?" Et maintenant, vous gardez la trace de l'historique complet de chaque ligne de la base de données entière!