Gestion d'un tournoi

Gestion d'un tournoi - PHP - Programmation

Marsh Posté le 02-01-2007 à 17:36:23    

Pour éviter de devoir refaire 36 fois ma table, comme vous auriez géré un tournois de façon simple au niveau BDD ?
 
Je l'aurai vu comme ça perso, mais je suis un peu bloqué :
 

Code :
  1. id
  2. team_name
  3. date
  4. team_number
  5. team_server


 
Pour la gestion de l'arbre, pour le premier tour on tire les équipes au hasard et on leur asigne un nombre : 1, 2, 3, 4, etc.
Une fois le premier tour passé on fait en sorte que ce soit les équipes avec les numéros les plus proches qui s'affrontent et ainsi de suite.
 
Il faudrait aussi pouvoir afficher les score de chaque matchs, donc je me demandais si les score devaient être contenus dans la même table ou bien dans une table séparée ?
 
Et que pensez vous de la gestion de l'arbre du tournois ?
 
Merci :)


---------------
Twitter
Reply

Marsh Posté le 02-01-2007 à 17:36:23   

Reply

Marsh Posté le 02-01-2007 à 18:11:47    

Concernant les scores, ils devraient logiquement être stocké pour chacun des match. Le score total devennant alors une donnée calculée et qui ne devrait donc pas être stockée.

Reply

Marsh Posté le 02-01-2007 à 20:56:12    

dwogsi a écrit :

Concernant les scores, ils devraient logiquement être stocké pour chacun des match. Le score total devennant alors une donnée calculée et qui ne devrait donc pas être stockée.


 
Je suis d'acccord, et disons crée une table séparée. Sinon ce qui faudrait faire c'est chaque match à chaque Team = 1 id unique le soucis en même temps je sais pas si tu essaye de créer un portail multiTeam ou juste pour ta ou tes Team mais avec cette méthode les tables vont se remplir rapidement si ca va être un portail genre ESL optimise au maximum tes champs sinon ca risque de poser soucis prévoit aussi l'éspace de la BDD (les hébérgeurs mettent des lilmites, sauf en serveur dédiée ou virtuel(privée)).
 
Pour la gestion de l'arbre du tournois il faudrait faire un système qui regroupe toutes les ID des équipes avec un champ "élliminé" (1 = perdu, 2 = disqualifié et 0 = encore dans le trounoi) et en + de tout ça qui repère les positions (demi finaliste, 3° palce etc...). Pour les scores tu reprends mon idée plus haut donc chaque ID = 1 match et au pire tu peux rajouter un champ qui correspond à l'ID du tournois en cours sinon il va tiré des nombre aléatoire.
 
Au final
 
Table => score_nom_du_tournoi
 

Citation :


id
id_team = ID de la Team
id_tournoi = peut etre pas obligatoire à cause de "id"
score_de_la_team = Score de la team


 
Table => score_match_amicale
 

Citation :


id
id_team = ID de la Team
score_de_la_team = Score de la team


 
Table => nom_du_tournoi
 

Citation :


id
id_team = ID de la Team
qualification = Est-elle disquelifié...


 
 
Cordialement,
Dobu

Reply

Marsh Posté le 02-01-2007 à 21:10:16    

Merci, je vais réflechire à tout ça.
 
Pour le champs qualification, effectivement j'avais pensé à la même chose.
Se sera plus quelque chose du genre ESL, mais en beaucoup plus petit bien évidemment.


---------------
Twitter
Reply

Marsh Posté le 03-01-2007 à 10:49:47    

c'est pour quel sport?

Reply

Marsh Posté le 03-01-2007 à 10:59:30    

Counter-Strike.


---------------
Twitter
Reply

Marsh Posté le 23-02-2007 à 18:01:28    

Il y a déja quelque chose qui existe pour gerer les tournois counter strike ca s'appele <b>zKup</b> et c'est gratuit
 
voici l'adresse du site : http://www.zkup.fr
 
C'est moi le créateur et je travaille sur la v2 qui sera plus poussée que la version 1.
 
Amuse toi bien :)

Reply

Marsh Posté le 23-02-2007 à 18:49:54    

Ouais, mais ça m'interesse pas :o


---------------
Twitter
Reply

Marsh Posté le 23-02-2007 à 20:26:18    

Moi je vois un architecture du genre :
 
TABLE team
team_id
team_name
 
TABLE match
match_id
team1_id
team2_id
score


---------------
ilonet - Internet, Informatique et Webmastering
Reply

Marsh Posté le 09-01-2008 à 21:08:31    

et maintenant il y a aussi ca pour organiser des tournois , c'est un module pour le CMS kwsphp .
 
http://cyklodev.com/index.php?mod=tournoi

Reply

Marsh Posté le 09-01-2008 à 21:08:31   

Reply

Marsh Posté le 10-01-2008 à 01:15:42    

Oui, mais c'était as mon problème, je voulais le coder moi même :o


---------------
Twitter
Reply

Marsh Posté le 10-01-2008 à 05:43:15    

Le plaisir viscieux de réinventer la roue, un virus très virulent et contagieux :whistle:
 
C'est pas compliqué, tu prends toutes les entités (équipe, tournois, match) => 3 table. Ensuite faut lier les 2 première et stocker les résultats => dans match
 
D'un point de vue conceptuel, tu devrais être en mesure de déterminer dans quelle table tu te situe soit en connaissant la table soit en connaissant l'attribut ou son type => nommer correctement les attributs
 
Avec ça, tu dois pouvoir gérer tous les cas ;)

Reply

Marsh Posté le 10-01-2008 à 11:47:23    

Toi tu ferai pas du Merise par hasard ? :whistle:
 
Merci en tout cas ;)


---------------
Twitter
Reply

Marsh Posté le 10-01-2008 à 14:17:00    

En tous cas, merise ou pas, c'est juste une question de logique si tu veux pouvoir manipuler tes données et en faire ce que tu veux, pouvoir faire évoluer sans avoir à tout refaire. Et en respectant quelques règles simple on s'y retrouve plus facilement aussi ;)
 
PS: dans certains cas les formes normales surtout la 3è c'est un peu relou à gérer et ça se justifie pas, faut pas être extrêmiste non plus :)

Reply

Marsh Posté le 10-01-2008 à 14:20:39    

Je dis ça parce que tu utilise le même vocabulaire, "entités" et "conceptuel" :)
 
Par contre j'ai pas compris ton ps :/


---------------
Twitter
Reply

Marsh Posté le 10-01-2008 à 14:43:16    

Il me semble que la troisième forme normale consiste à ne jamais rien stocker qui puisse être calculé ou retrouvé à partir des données des autres tables.
En gros, pour un forum, ça reviendrait à ne jamais stocker le nombre de message par forum, par discussion, par personne, ... pour un tournois, ça reviendrait à ne jamais stocker le classement ou l'état d'un participant (éliminé, ...)
A l'arrivé, on gagne quasiment rien au niveau volume de donnée mais on perd énormément sur le temps de calcul des données non stocké.

Reply

Marsh Posté le 10-01-2008 à 15:21:48    

omega2 a écrit :

Il me semble que la troisième forme normale consiste à ne jamais rien stocker qui puisse être calculé ou retrouvé à partir des données des autres tables.
En gros, pour un forum, ça reviendrait à ne jamais stocker le nombre de message par forum, par discussion, par personne, ... pour un tournois, ça reviendrait à ne jamais stocker le classement ou l'état d'un participant (éliminé, ...)
A l'arrivé, on gagne quasiment rien au niveau volume de donnée mais on perd énormément sur le temps de calcul des données non stocké.


 
Oui, c'est ça.
Dans merise, logiquement tout ce qui peut-être calculé n'est pas stocké.
 
Mais mon prof stocke les trucs trop lourd à calculer.
 
Comme il le dit lui même, Merise a ses limites.


---------------
Twitter
Reply

Marsh Posté le 10-01-2008 à 15:38:06    

(ouais enfin... score total, faut pas pousser mémé dans les orties non plus :o)

Reply

Marsh Posté le 10-01-2008 à 17:48:09    

... parce que sinon ça va lui piquer le cul :whistle:
Après pourquoi pas faire des tables purements statistiques à calculer une fois :spamafote:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed