Classements des joueurs - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : Classements des joueurs (/showthread.php?tid=5087) |
RE: classements des joueurs - php_addict - 18-08-2010 merci mille fois pour toute vos précisions. et un grand merci à Foxglove pour avoir pris le temps de m'écrire cette longue explication sur les hashtable et la dichotomie Je vais donc tenter cette solution: - une table classements avec MySQL (independantes de la table joueur) - un systeme de cache que je mettrais en place plus tard encore merci bonne journée RE: classements des joueurs - Sh4rk - 18-08-2010 Tu devrais je pense te pencher pour faire ta base de donnée en partant d'un modèle UML valide. Et je pense qu'il faudrait que tu actualise ton classement tous les * laps de temps, et de stocker les résultat également dans une table à part RE: classements des joueurs - php_addict - 18-08-2010 (18-08-2010, 10:33 AM)Sh4rk a écrit : Tu devrais je pense te pencher pour faire ta base de donnée en partant d'un modèle UML valide. c'est à dire ? RE: classements des joueurs - Sh4rk - 18-08-2010 Ben en te basant sur un modèle UML quand tu vas faire ta base de donnée si tu respecte bien les relations du modèle UML tu auras une base de donnée très bien conçu, trop peu de personne utilise l'UML pour leur projet pourtant c'est indispensable pour partir sur de bonnes bases RE: classements des joueurs - Ter Rowan - 18-08-2010 (18-08-2010, 05:52 PM)Sh4rk a écrit : c'est indispensable pour partir sur de bonnes bases très utile plutôt qu'indispensable, je pense des gens ont développé de très bonnes applications sans passer par de l'uml qui n'est quand même (malgré toutes les qualités qu'il porte) qu'un langage (le "L" ^^), un formalisme qui plus est j'ai assité il y a quelques mois, à la présentation par un professeur de "l'état" de l'art de la recherche informatique sur tout cet aspect modélisation et l'une des pistes qui, en ce moment, serait de passer, petit à petit, à des langages fonctionnels spécialisés "DSL" si mes souvenirs sont bons pour "domain specific language" (attention pas au sens microsoft qui utilise aussi ce terme) grosso modo l'idée est que : - UML est extrêmement souple (on peut faire énormément de chose, donc surcharger énormément de chose) au point qu'on a plusieurs moyens pour représenter la même chose (==> on arrivera a plusieurs solutions techniques pour un même point de départ ==> UML ne garantit pas l'excellence puisque parmi toutes ces solutions possibles par UML, certaines sont potentiellement meilleures que d'autres) - UML, si on l'applique sur l'ensemble du processus, génère une volumétrie de documentation importante,et trop de doc tue la doc, comme le reste. Il est parfois plus simple d'écrire une phrase, un schema XML ou un truc spécifique que je connais pas (chaque solution dépendant du contexte, du métier, des habitudes de travail, etc...) que de réinventer la roue en cherchant à s'unifier (le "U") au monde entier entendons nous, UML est à mon sens très utile mais pas indispensable RE: classements des joueurs - php_addict - 18-08-2010 merci je vais me renseigner sur le UML je vous expose ce que j'ai tenté pour le moment, j'ai visé large: - 10.000 joueurs (dix milles) - les joueurs peuvent être classés selon 3 critères, pour l'exemple l'on va dire: points attaque - points defenses - points tralala 1ere etape: je créé une table classement_temporaire ou je calcules les differents points des joueurs ( points attaque - points defenses - points tralala ) j'ai donc des champs du genre joueur_id , points attaque , points defenses, points tralala 2eme etape: - je tries la table table classement_temporaire pour créer une table classement_points_attaque - je tries la table classement_temporaire pour créer une table classement_points_defenses - je tries la table table classement_temporaire pour créer une table classement_points_tralala donc mes tables points attaque - points defenses - points tralala sont les 3 types de classements de mes joueurs, les tables sont classées donc l'affichage classé est tres rapide... Bilan de l'operation: temps d'execution des etapes 1 et 2 : environ 10 secondes (sans accelerateur php) et en localhost sur mon pc... voili voilou... qu'en pensez vous ??? RE: classements des joueurs - Ter Rowan - 18-08-2010 et si tu essayais avec une table joueur id, type classe, points (avec type classement attaque, défense, tralala) et une requete qui tri avec select * from table order by type classe, points ca te fait une seule requete quelque soit le classement (et le nombre de classement) RE: classements des joueurs - niahoo - 19-08-2010 heu je dis surement n'importe quoi mais si tu as déjà une table avec chaque joueur, ses points de défense et d'attaque, à quoi bon recopier cette table ? tu fais sur la table originelle et du coup, temps de traitement < 1seconde, non ? ______ je connais mal l'UML (en fait pas du tout), par contre j'utilise beaucoup Merise. Mais comme dit plus haut, l'un comme l'autre permettent de définir des modèles conceptuels qui peuvent avoir plusieurs solutions physiques, les unes étant meilleures que les autres. Dans tous les cas, passer une heure sur du papier sera plus bénéfique que passer une heure les mains dans le code, la seconde option restant nécéssaire cependant. RE: classements des joueurs - php_addict - 19-08-2010 (18-08-2010, 11:29 PM)Ter Rowan a écrit : et si tu essayais avec une table oui mais le soucis que j'ai c'est de pouvoir afficher la position du joueur dans son classement, si le joueur demande le classement "par points d'attaques" et si je veux afficher un truc du genre: 1 - joueur 2 - joueur 3 - joueur 4 - joueur 5 - LE JOUEUR A AFFICHER 6 - joueur 7 - joueur 8 - joueur pour afficher cela il faut bien que je connaisse la position de LE JOUEUR A AFFICHER pour pouvoir afficher les joueurs avant et apres dans le classement non ? j'ai eu beau essayé tout ce que j'ai pu je ne descend pas en dessous des 10 secondes pour créer mes 3 tables classement ;( (10 secondes sur mon localhost avec windows7 et wamp...je peut pas essayer sur mon mutu ovh car je ne peut pas uploader une base de donnée de cette taille...) RE: classements des joueurs - Ter Rowan - 19-08-2010 je suis loin d etre super pro en sql mais tu dois avoir moyen d'obtenir à partir de la table joueur id, type classe, points une requete ou table (grosso modo la manière dont tu fais actuellement avec des colonnes, d ailleurs je serais intéressé de savoir comment tu calcules la place de chaque joueur) : joueur id, type classement, points, classement une fois arrivé là tu devrais être capable par une seule requête de ramener 10 gus avant / après le joueur voulu par type de classement (where id joueur = xxx and type de classement = yyy) voire même en une seule requête ramener la sélection qui t intéresse pour tous les types de classement d'un coup mais je me suis jamais penché sur les classements en tant que tel, du coup comme je n arrive pas à visualiser les requêtes que tu as du faire pour obtenir les résultats, je ne sais pas trop comment "ajouter" la transformation de colonne (tes trois classements) en ligne. Pourrais tu montrer tes requêtes (d'une ça me fera progresser, deux j'aurais certainement une meilleure réponse après, mais demain ^^ ) |