Bdd table vote
Bonjour pour un projet de site de rap je dois afficher sur ma page d'accueil les tops.
ToP album, top artiste top membre..
Le top se fait en fonction des votes qu'ils ont recus DANS LA SEMAINE ACTUEL.
Donc par exemple pour le top album je dois faire une table vote_album qui contiendra les champs :
vote_id
vote_vote
vote_date
album_id
Mais le problème c'est que imaginons l'album fait un gros buzz il a 10 000 votes , cela fait déjà 10 000 entrés dans la bdd.
Alors que si je ne fais pas de table vote mais j'insère un champ vote dans la table album cela ne fera que 0 entrés mais je ne pourrais pas filtrer la date.
Comprend tu mon problème? comment je dois faire?
Merci
Réponses apportées à cette discussion
Si tu as besoin de garder un historique par date des votes d'un album, alors tu seras obligé d'avoir ta table et ses n milliers d'enregistrements. Si tu ne veux que la nombre de hits par semaine, tu fais un champs "hits" dans ta table "album" que tu incrémentes à chaque fois qu'il y'a un vote et que tu remets à zéro toutes les semaines avec un cron.
L'idéal est même de faire les deux pour plus de performances. Tu gardes la grosse table pour l'historique mais en même temps tu gardes le champ hits pour éviter de faire des SELECT COUNT() gourmand à chaque demande du nombre de hits de l'album.
Ah donc je fais dans la table album deux champs
vote_total et vote_semaine.
Et j'ajoute un cron qui remet à 0 toutes les semaines le champ vote_semaine?
Merci j'y avais pas pensé !!!