Disons que vous voulez créer un site de type Digg.com. Les votes doivent-ils être un modèle distinct ou un champ de la table correspondant au modèle de l'objet soumis au vote ?
Réponses
Trop de publicités?Cela dépend de la quantité d'informations que vous voulez stocker. Si vous avez juste une référence à quelque chose et un score total, alors vous n'avez pas besoin d'un modèle. Si vous voulez stocker qui a voté, combien de votes positifs ou négatifs ont été reçus, l'horodatage de la réception des votes, et être capable d'annuler les votes provenant de sources indisciplinées, alors vous aurez besoin de garder chacun de ces votes comme leur propre modèle. Personnellement, si je devais concevoir un tel système, je ferais de chaque vote son propre enregistrement.
Compte tenu de l'exigence d'un site de type Digg.com, je dirais que c'est un modèle à part entière. En grande partie en raison de la nécessité de détecter les "voting rings", c'est-à-dire les groupes de faux électeurs.
En dehors de cela, j'opterais pour les champs. MySQL, par exemple, peut mettre à jour les lignes de manière atomique (c'est ce qu'on dit, je n'ai jamais essayé moi-même), ce qui est censé être assez efficace. Plus d'informations sur le Documentation sur MySQL .
Cela dépend si vous souhaitez conserver les informations relatives au vote ou non. Cela n'a rien à voir avec les RdR mais avec la normalisation de la base de données.
Si vous souhaitez conserver des informations supplémentaires avec les votes, comme par exemple la date à laquelle ils ont été enregistrés, vous devez les conserver dans une autre table (et en tant que telle, ce sera un autre modèle). Sinon, vous pouvez les stocker dans la table des autres objets.