Question

Je ne savais pas vraiment comment formuler le titre. Mais c'est mon problème. Nous utilisons SqlCacheDependencies pour mettre à jour des objets de cache. Mais la requête derrière ceci est "compliquée" que nous aimerions le rendre un peu plus facile.

Notre première idée a été d'ajouter un nom de champ tel que DateChanged et d'utiliser DateChanged pour vérifier si un objet a réellement changé au lieu de charger toutes les colonnes d'une table.

SELECT DateChanged FROM Table1

au lieu de

SELECT Id, Title, DateChanged, Description FROM Table1

Mais j'espérais que quelqu'un pourrait me dire s'il existe d'autres moyens de le faire ou s'il existe des normes pour nommer la colonne indiquant un changement. En quoi les frameworks sont-ils comme "Entity Framework"? ou " NHibernate " gérer cela?

Était-ce utile?

La solution

Il est généralement appelé "" horodatage "

c'est à dire dans

Autres conseils

Ce sont les colonnes que j'utilise dans " auditable " entités:

version: hibernate's optimistic concurrency control
createdBy: FK to users
modifiedBy: FK to users
createdAt: timestamp
modifiedAt: timestamp

Si vous êtes sur SQL Server, sachez qu’une colonne d’horodatage est nommée de manière trompeuse. Bien qu'il puisse être utilisé pour suivre les modifications apportées à une colonne, sa valeur n'a rien à voir avec la date ou l'heure. Cela peut être considéré comme une identité unique dans la base de données, rien de plus. http://msdn.microsoft.com/en-us/library/aa260631. aspx

Pour savoir si un changement a eu lieu, vous avez besoin de deux horodatages, comme dans la réponse de cherouvim. L'un est défini lorsqu'un objet est créé, l'autre lors de toute modification, probablement via le déclencheur de mise à jour. S'ils diffèrent, l'objet a été modifié, mais vous ne pouvez pas savoir exactement quand.

Sur SQL Server, vous devez utiliser le même modèle, mais avec des colonnes datetime. Vous pouvez ensuite calculer la date de la ligne en soustrayant la date de création de la date du mod.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top