2011-06-05 3 views
3

Quel système serait le meilleur pour aller de l'avant avec fonction de vote et pourquoi? ;Lequel est le mieux pour une fonction de vote

  • Mettre les votes séparément à l'intérieur d'une table de base de données et le calcul de la moyenne quand il est nécessaire

  • vu qu'une seule ligne pour un seul produit. Lorsqu'un nouveau vote arrive, obtenir cette base de données de vote, le calculer à nouveau et mettre à jour l'enregistrement. par exemple, nous avons un enregistrement de vote pour le produit 1. Son vote est totalement 326 dans la base de données et 45 personnes ont voté. Ensuite, nous recevons un nouveau vote qui est de 4 et pour le produit 1. Nous prenons le dossier de la base de données, puis faisons la fonction suivante;

(326 + 4)/(45 + 1)

puis enregistrez la base de données à nouveau avec une valeur totale de 330 et 46 comme voté personnes.

Je vais toujours de l'avant avec la première option mais je veux savoir ce que les autres font.

Répondre

3

Eh bien, cela dépend toujours de ce que vous voulez avec les informations supplémentaires sur les votes. Si vous voulez connaître par exemple les tendances du vote (la moyenne monte ou descend) ou si vous voulez le savoir, les votes sont relativement anciens/nouveaux ou quel utilisateur a voté (le 1-vote-per -personnel-check) etc. etc. etc. vous voulez stocker chaque vote dans un tableau séparé.

Si tout ce qui vous intéresse est le résultat final, la deuxième option est beaucoup plus efficace.

1

Si vous voulez supprimer que les gens peuvent voter deux fois, vous aurez besoin de l'approche 1-row-per-vote de toute façon, donc je recommande la première option.

La deuxième option pourrait être meilleure sur le plan des performances - mais si jamais un problème survient, il est facile d'utiliser un mécanisme de mise en cache.

0

Il y a beaucoup de facteurs à considérer. Avez-vous besoin de vous défendre contre une attaque de votre serveur d'applications et de modifier le nombre de votes? Êtes-vous préoccupé par le fait que les votes des gens soient détectables? Êtes-vous préoccupé par les problèmes de performance liés au verrouillage? Tous ceux-ci affecteront la décision, et les réponses à ceux-ci varient énormément selon le scénario spécifique.

Questions connexes