|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre à l'essai
![]() Développeur Web Inscription : avril 2011 Messages : 40 ![]() |
Bonjour.
Je suis en train de créer un site web entre amis sur le pronostic de match de football (de ligue 1 essentiellement). J'ai crée mon MCD et j'ai le MPD ci dessous. ![]() Equipe : equipe_id : identifiant (clé primaire) equipe_lib : Libellé de l'équipe equipe_val : booléen pour savoir si l'équipe est bien en ligue 1 equipe_logo : adresse url du logo de l'équipe Matchs : matchs_id : identifiant (clé primaire) equipe_id_dom : clé étrangère de l'équipe qui joue a domicile equipe_id_ext : clé étrangère de l'équipe qui joue a l'extérieur matchs_journee : numéro de la journée matchs_date : date du matchs matchs_report : booléen pour savoir si le match est reporté Resultat: resultat_id : identifiant (clé primaire) matchs_id : clé étrangère du matchs resultat_but_ext : nombre de but de l'équipe qui joue a l'extérieur resultat_but_dom : nombre de but de l'équipe qui joue a domicile Pour le moment je bloque pour faire ma requête sql qui m'affichera le classement directement. Je sais que je devrais utiliser des conditions (when, case, en cas de victoire ou de defaite pour ajouter 3 points, 1 ou 0), mais pour le moment je n'en suis pas là. Je voudrais pour le moment simplement afficher ma liste d'équipe avec tous les matchs joués (donc qui sont dans resultat), leurs nombres de but marqué a domicile et a l'extérieur et le nombre de matchs joué. Mon soucis se place surtout dans la jointure entre equipe et matchs, je ne sais pas trop comment la faire sachant que j'ai deux clés étrangères. Quelqu'un pourrait-il me mettre dans la bonne voie ? Merci d'avance |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 641 ![]() |
Salut,
Je n'arrive pas bien à voir l'utilité d'une table de résutlat, sachant qu'il n'y a qu'un seul résutlat par match possible. Par contre modéliser un classement avec des saisons serai interessant non ? |
|
|
00
|
|
|
#3 | ||||||
![]() ![]() |
Citation:
Code :
Citation:
Code :
Et dans le nom d'une colonne, ce qui est important n'est pas tellement le nom de la table mais la partie qui décrit ce que contient la colonne ; c'est donc plutôt celle-là qu'il faut mettre en entier. Perso, j'utilise seulement des acronymes pour rappeler le nom de la table. Par exemple, j'écrirais plutôt ainsi quelques colonnes de ton modèle : mch_id_equipe_exterieur eqp_est_en_ligue_1 mch_est_reporte
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||||||
|
00
|
|
|
#4 | |
![]() ![]() |
Citation:
match -0,1----avoir----1,1- resultat On pourrait par contre faire uen légère amélioration avec une identification relative : match -0,1----avoir----(1,1)- resultat Ce qui supprime la colonne resultat_id et passe la colonne resultat.match_id en clé primaire.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
|
00
|
|
|
#5 | |
|
Membre Expert
![]() Sylvain DevidalChef de projets Générix Inscription : février 2010 Messages : 1 062 ![]() |
Citation:
|
|
|
|
00
|
|
|
#6 | |||||||||||
|
Membre à l'essai
![]() Développeur Web Inscription : avril 2011 Messages : 40 ![]() |
Merci pour toute vos réponses qui m'ont été d'une grande aide
Citation:
Pour la table "Matchs" avec un s, c'est tous simplement parce que je travaille sous MySql et les requêtes avec Match ca pose soucis puisque Match est un Prédicat qui permet de comparer un ensemble de valeur de ligne à un ensemble de lignes retourné par une sous-requête. J'aurai pu appeler ma table Rencontre a la place oui, mais comme c'est pour du domaine privé, cela ne me dérange pas de mettre un S, je sais pourquoi je l'ai fait Pour ce qui est des matchs en fonction des saisons, j'ai la table saison qui est bien relié a la table Matchs. J'ai juste viré les champs pour simplifié ma question. J'ai aussi un champ Championnat au cas où je voudrais faire le championnat de Ligue 2. J'ai aussi le pays relié a la table championnat pour changer de pays aux besoins ^^ Merci pour tes requêtes CinePhil, elles m'ont beaucoup aidé. Je faisais deux jointures personnellement (oui je sais c'est idiot ^^). En gros une jointure equipe_id = equipe_id_dom et equipe_id = equipe_id_ext... d'où mes soucis... Je ne savais pas qu'on pouvais utiliser la condition OR avec les jointures, très pratique, du coup j'ai pu faire tous mon classement du championnat avec une seule requête. Je la poste et je l'explique pour ceux qui sont intéressés, Attention, c'est la requête version BETA, elle peut largement être amélioré ^^ Code :
Code :
Tous simple, ca me dit la journée la plus haute enregistré (avec la jointure il prend forcement les matchs avec un résultat et donc que le match a été joué) Code :
Code :
Code :
Il me reste a traduire tous ca pour Doctrine. En faite je fais mon site sous Symfony avec l'ORM Doctrine. Je ne l'ai pas encore utilisé avec Case, When et compagnie |
|||||||||||
|
|
10
|
|
|
#7 | |||
![]() ![]() |
Citation:
Citation:
te_match => table issue d'une entité du MCD qui contient des matches. Sur son site professionnel, il y a une norme plus complète. Citation:
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|||
|
00
|
Copyright © 2000-2012 - www.developpez.com