|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre habitué
![]() Inscription : octobre 2008 Messages : 745 ![]() |
Bonjours,
J'ai fait un système de vote. La table sondage_vue : Cette table me sert juste pour l'affichage, elle affiche, une petite images, sur laquelle on peut cliquer. Pour la maintenance c'est biens simple, j'ai juste a rajouter une image, un lien et le nouveau vote se rajoute sur le site. Je me sert d'une boucle while pour afficher. Ma deuxième table vote : Code :
id | pseudo | pseudo | point | vote1 | vote1_time | vote2 |vote2_time Si le membre a voter il y a moins de 2H, je n'affiche pas le bouton de vote. Alors voila mes problèmes, que vous avez du remarquer : - Pour ajouter un vote, je suis obligé d’éditer les 2 tables - Quand je veux afficher ou pas le bouton de vote en fonction du temps, je ne vois pas de solution. Je pense que l'organisation des tables n'est pas correct. Pourriez vous m'aidez a créer un système simple ? Merci |
|
|
00
|
|
|
#2 |
|
Membre éprouvé
![]() romain escudierDéveloppeur informatique Inscription : juin 2011 Messages : 300 ![]() |
Personnellement je verrais bien un truc du genre pour ta deuxieme table:
Code :
id | id_vue | pseudo | vote | last_vote _ id_vue est l'id du vote pour faire la liaison entre les deux tables. _ last_vote est l'heure a laquelle le vote a été effectué. pour savoir si le vote a été fait il y a moins de 2h, tu fais un datediff entre le temps courant et le last_vote
__________________
Pas de solution, pas de probleme ![]()
|
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() Inscription : octobre 2008 Messages : 745 ![]() |
Merci de ta reponse.
Mais ta reponse ne me convient pas vraiement. Que fais tu des autres votes ? vote1 | vote2 ??? Pour la liaison je préfère faire une jointure c'est plus propre, mais avec ma table impossible. |
|
|
00
|
|
|
#4 |
|
Membre éprouvé
![]() romain escudierDéveloppeur informatique Inscription : juin 2011 Messages : 300 ![]() |
Chaque utilisateur peut faire un nombre de vote limité? ou illimité?
La jointure se fait justement avec l'id comme tu as une relation 1-n
__________________
Pas de solution, pas de probleme ![]()
|
|
|
00
|
|
|
#5 |
|
Membre habitué
![]() Inscription : octobre 2008 Messages : 745 ![]() |
En effet la jointure ici semble possible, mais si tu regarde plus en detail c'est impossible.
Pour les votes c'est illimité, sauf 1 toutes 2 heures. |
|
|
00
|
|
|
#6 |
|
Membre éprouvé
![]() romain escudierDéveloppeur informatique Inscription : juin 2011 Messages : 300 ![]() |
J'ai pas du bien comprendre alors
![]() En gros tu as une table qui regroupe toutes les votes en cour (donc les sujets sur lesquels voter) Et une autre qui stocke les votes c'est ça?
__________________
Pas de solution, pas de probleme ![]()
|
|
|
00
|
|
|
#7 |
|
Membre habitué
![]() Inscription : octobre 2008 Messages : 745 ![]() |
La table vote_site ne me sert que pour l'affichage.
J'affiche dans un tableau toutes les images, avec une lien de redirection. Un fois cliqué sur l'image sa redirige vers ... vote.php qui va ajouter le vote, puis redirigé vers le partenaire. La table vote, elle comptabilise les votes. Dans : - vote1 : On met 1 ou 0 pour dire que c'est voté - vote1_time... One met le temps du vote + 2 heures. (pour vierifer si on peut voter. |
|
|
00
|
|
|
#8 |
|
Membre confirmé
![]() Vincent Développeur informatique Inscription : janvier 2009 Messages : 246 ![]() |
C'est déjà beaucoup plus clair. Mais c'est quoi ton souci exactement ?
|
|
|
00
|
|
|
#9 |
|
Membre habitué
![]() Inscription : octobre 2008 Messages : 745 ![]() |
Mon souci, viens de la longteur de la maintenance.
Imagniez pour ajouter un nouveau vote, je dois ajouter les info dans vote_site. Jusqu'a la pas de probleme. Mais je dois aussi rajouter des info dans : vote_site ... | ... | vote2 | vote2_time. C'est deja mois pratique. Ensuite pour afficher ou ne pas afficher le bouton de vote, je ne peux pas le faire. Pour l'instant j'affiche tous le temps le bouton de vote. Donc mon probleme c'est au niveau de l'organisation des tables. Dois je supprimer une table, la modifier, ou en rajouter une ? |
|
|
00
|
|
|
#10 | ||
|
Membre éprouvé
![]() romain escudierDéveloppeur informatique Inscription : juin 2011 Messages : 300 ![]() |
C'est pour sa que je t'ai expliquer une autre manière de voir les chose:
Qui va DEFINIR les votes en cour (cad les différents endroit ou le gugus peut voter) Ensuite pour chaque vote, une table repertori les votes des gugus: Code :
id | id_vue | pseudo | vote | last_vote Code :
Le résultat du vote est donc 1/2. Ensuite tu rajoute un enregiostrement dans ta table vote et pof tu as un nouveau vote disponible
__________________
Pas de solution, pas de probleme ![]()
|
||
|
|
00
|
|
|
#11 | |||
|
Membre confirmé
![]() Bertrand Étudiant Inscription : octobre 2010 Messages : 216 ![]() |
Citation:
bon je comprends rien à cette table. Pourquoi y a t il 2 fois pseudo? 2 fois vote? Si tu veux garder un historique des votes pourquoi tu ne fais pas une table historique de ce type: Code :
Si ca réponds pas à ta question désolé mais j'ai vraiment rien compris... Entièrement d'accord avec skeud
__________________
Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître Ps: N'oubliez pas SVP
|
|||
|
|
00
|
|
|
#12 | |||
|
Membre habitué
![]() Inscription : octobre 2008 Messages : 745 ![]() |
Citation:
Sa donne sa plutot Code :
|
|||
|
|
00
|
|
|
#13 | ||||
|
Membre éprouvé
![]() romain escudierDéveloppeur informatique Inscription : juin 2011 Messages : 300 ![]() |
J'arrete pas de t'expliquer que ça ne sert a rien, les enregistrement ne sont pas unique par utilisateur mais multiple, ce qui est unique c'est le vote pour un site, un utilisateur aura qu'un seul enregistrement pour un id_vote. EDIT: un exemple de table complete pour toi pour que tu comprenne: vote: Code :
Code :
www.toto.fr: 1/2 www.google.fr: 0/2 www.tata.fr: 2/2 Et donc pas besoin de mettre le votex et voteX_time
__________________
Pas de solution, pas de probleme ![]()
|
||||
|
|
00
|
|
|
#14 |
|
Membre habitué
![]() Inscription : octobre 2008 Messages : 745 ![]() |
skeud, cette technique je l'ai utilisé, sauf que mon sql saturé.
Le temps d'affichage de la page quand il y avait un fort trafique était interminable. A la limite je prefere faire sous 3 tables avec des liaisons. table vote_site table vote_point table vote_time Je trouve mieux deja. Sauf un point noir, je vais etre obligé de creer une ligne par vote, ce qui me plait pas vraiment. Sur mon site actelle j'ai plusieurs milliers de client, je risque de saturer la DB si j'arrive a 1 000 000 000 de client. Après pour ce qui est de la supression des vote perimé, je vais devoir verifier a chaque fois qu'un client actualise une page... Pas très optimisé, je pense . Mais niveau organisation des tables je prefere. Auriez vous une idée pour une meilleur optimisation ? |
|
|
00
|
|
|
#15 |
|
Membre éprouvé
![]() romain escudierDéveloppeur informatique Inscription : juin 2011 Messages : 300 ![]() |
euh meme avec des milliers de client sa devrait fonctionner, c'est pas un traitement lourd, le probleme vient plus de ton code je pense que du nombre de donnee.
Perso je travail sur un site de gestion avec pres de 10000 devis et des traitement de calcul derriere tout sa, donc plutot lourd et le temps de calculer une moyenne en liaison avec d'autre donnee, sa me prend a peine 30 seconde, donc pour juste une histoire de vote, sa passe sans souci.
__________________
Pas de solution, pas de probleme ![]()
|
|
|
00
|
|
|
#16 |
|
Membre habitué
![]() Inscription : octobre 2008 Messages : 745 ![]() |
Je ne parle pas de millier, mais de dizaine de milliers.
On va rester sur tes 30s, regarde imagine 30 seconde pour afficher une page... sachant qu'on navigue sur un site donc on visite 3 a 4 pages minum... ce qui ferait un temps d'attente total de 2 minutes, pour lire 4 pages... Mes clients sa les feraient fuir, et je les comprends j'en ferai de meme. Donc revenons a la question de base. Comment optimiser tous sa ? |
|
|
00
|
|
|
#17 |
|
Membre éprouvé
![]() romain escudierDéveloppeur informatique Inscription : juin 2011 Messages : 300 ![]() |
Beh justement, je te dis que ça ne devrait pas poser de problème avec une organisation de table de cette manière.
Ensuite si ça prend du temps c'est du coter php que tu n'optimise pas, pas du coter sql
__________________
Pas de solution, pas de probleme ![]()
|
|
|
00
|
|
|
#18 |
|
Membre Expert
![]() Inscription : avril 2006 Messages : 1 338 ![]() |
ou du coté sql si tu n’indexe pas correctement tes tables.. mais sinon oui en principe pas de soucis :!
__________________
Stay in Bed .. Save Energy |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com