J'ai une table de base de données appelée "Posts" qui stocke toutes les informations concernant la soumission d'un article sur un site Web. Il y a une colonne nommée "Vues" qui est une valeur qui s'incrémente chaque fois que cette publication est vue.Mise à jour du nombre de vues d'une page Web dans une base de données
Le processus est le suivant:
- Obtenir l'enregistrement de la base de données
- Incrémenter le courant par un
- Enregistrer les modifications apportées à la base de données.
Assez simple. Mon souci est que si plusieurs personnes cliquent sur le lien en même temps, les mises à jour ne seront pas exactes. Comment dois-je aborder cela? Cela devrait-il être fait dans une procédure stockée?
/// <summary>
/// Updates the view count of a post.
/// </summary>
/// <param name="postId">The Id of the post to update</param>
public bool UpdateViewCount(int postId)
{
Repository repository = new Repository();
Post p = repository.Posts.Where(p => p.Id == postId).SingleOrDefault();
if (p != null)
{
p.Views++;
}
repository.SubmitChanges(System.Data.Linq.ConflictMode.ContinueOnConflict);
}
Donc je ne devrais pas le faire en code? Est-il préférable d'être un sproc? – Micah
Je n'ai jamais su que tu pouvais faire ça. Merci! – stalepretzel