Page 1 sur 1

BDD Tableau de résultats...

Posté : 24 oct. 2005, 12:38
par Femto
Tout d'abord bonjour à toutes et a tous.

J'essaye de construire une base de données regroupants des competiteurs et leurs résultats sportifs. J'y arrive assez bien en partie mais je me heurte à un gros probleme de methodologie sur une des facettes que je considere tres importante pour cette base de donnée.

Je compte afficher ses victoire ou defaites du sportifs sur sa fiche comme suit :

:: Résultats de Philippe Gastao

[Resultats] | [Adversaire] | [Championnat] | [Meteo] | [Date]

Victoire | Dupond | Tenniscup 2005 | Ensoleillé | 30/07/2005
Défaite | Jack | Tennisopen | Ensoleillé | 12/04/2003
Defaite | Joe | Compet' intervillage | Nuageux | 10/12/200
Victorie | Alain | Tenniscup | Pluvieux | 05/04/1998



J'aimerais créer mes tables de façons à ce qu'elles soient exploitables par tous les sportifs de la base de donnée, j'ai pensé à faire deux tables avec ces attributs :

Table qui recense les sportifs :

table_fichesportifs
+ id_sportif + nom + prenom + etc +
+ 1 + Gastao + Philippe + etc +
+ 2 + Dupond + Julien + etc +
+ 3 + Jack + Alan + etc +

Table des résultats :

table_resultat
+ championnats + id_gagnant + id_perdant + meteo + date
+ Tenniscup + 1 + 3 + Nuageux + 30/04/2000 +
+ Tennisopen + 2 + 1 + Ensoleillé + 12/11/2004
+ Compet' intervillage + 3 + 2 + Nuageux + 03/01/2005



Question : Comment determiner si le sportif a gagné ou perdu la rencontre et marquer le resultat sous la forme d'un simple Victoire ou Defaite, et tout aussi important, de determiner qui était son adversaire vu qu'il peut etre a la fois dans id_gagnant ou dans id_perdant.

Cela fait trois jours que je concentre ma matiere grise sur ce sujet en parcourant les tutoriaux, google etc... sans succès.

Je vous remercie d'avance pour toute l'aide que vous pourrez m'apporter pouvant m'aiguiller vers la solution.

Merci et bonne journée à tous.

Posté : 24 oct. 2005, 16:57
par goeb
bonjour,

pour déterminer si monsieur X a gagné la rencontre Y, il faut faire la recherche suivante :

Code : Tout sélectionner

SELECT * FROM table_resultat WHERE id_gagnant = X AND championnats = Y;
cette requête SQL te donne une ligne s'il a gagné la rencontre, et zéro ligne s'il a perdu.
et s'il a gagné, ça donne aussi l'ID de son adversaire.

s'il a perdu, pour savoir quel etait son adversaire, il faut faire un truc similaire :

Code : Tout sélectionner

SELECT id_gagnant FROM table_resultat WHERE id_perdant = X AND championnats = Y;
Cela dit, lors d'une compétition, il n'y a pas qu'un seul match, alors je ne suis pas sûr que ta modélisation soit très bonne.

Posté : 24 oct. 2005, 18:28
par Femto
Merci beaucoup pour ton aide Goeb ;)