IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Où placer une méthode d'une table de relation porteuse


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 26
    Par défaut Où placer une méthode d'une table de relation porteuse
    Bonjour,

    Je me pose une question et je souhaiterai avoir vos avis.

    J'ai 2 tables "equipe" et "competition", entre les 2 j'ai une table de relation "equipe_competition" (CIM porteuse) qui porte les informations "position", "points", matchs_joues"...

    Je souhaite obtenir le classement d'une compétition, j'ai alors créé une classe "EquipeCompetition" qui contient une méthode "getList" où je fais des jointures pour récupérer également quelques données des équipes et de la compétition.

    Est-ce que ça vous parait correct de créer une classe pour les tables de relation ?

    J'aurai pu mettre une méthode "getClassement" dans la classe "Equipe", ça me retournerait bien un tableau d'équipes mais ça m'oblige à ajouter les attributs de la relation ("position", "points"...) dans la classe "Equipe" et je trouve que ce n'est pas leur place : je n'en ai pas besoin dans la méthode "get" par exemple...

    J'aurais pu aussi mettre une méthode "getClassement" dans la classe "Competition" mais elle me renverrai un tableau d'équipes, ça me parait pas cohérent.

    Merci d'avance pour vos réponses

  2. #2
    Membre expérimenté
    Profil pro
    Responsable de service informatique
    Inscrit en
    Août 2006
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 174
    Par défaut
    Bonjour,

    On ne fait pas de classe en fonction des tables créées mais fonction du besoin.

    Tout de suite là sans réfléchir et sans connaître les besoins, une méthode getClassement pour une compétition ne me paraît pas con.

    Tu as une compétition et fonction d'une compétition tu as des équipes, donc ce serait bien d'avoir oui le classement de ces équipes pour la compétition.

    Cordialement,

    Natso

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 26
    Par défaut
    Tout d'abord merci pour ta réponse.

    J'ai compris ce que tu voulais dire dans le sens où ça ne te paraît pas choquant qu'une méthode de la classe "Competition" retourne une liste d'équipes, mais j'essaie de garder une certaine logique d'organisation par rapport à ma modélisation.
    Peut-être que je me prends trop la tête, mais j'ai l'impression qu'il y a une bonne pratique dans ce cas...

    Je m'explique :
    - Ma classe "Equipe" va contenir, entre autres, une méthode "get" qui me retourne un objet "Equipe" (avec pour attributs les colonnes de ma table "Equipe" et quelques colonnes issues de tables jointes comme le nom de l'entraineur stocké dans la table "Entraineur"), une méthode "getList" qui me retourne un tableau d'objets "Equipe"...
    - Ma classe "Competition" va contenir, entre autres, une méthode "get" qui me retourne un objet "Competition", une méthode "getList" qui me retourne un tableau d'objets "Competition"...

    Tout est cohérent jusque là, mais se pose le problème des méthodes de tables de relation. C'est pourquoi je pensais faire ça :
    - Ma classe "EquipeCompetition" va contenir, entre autres, une méthode "get" qui me retourne un objet "EquipeCompetition" (classement d'une équipe dans une compétition), une méthode "getList" qui me retourne un tableau d'objets "EquipeCompetition" (classement des équipes dans une compétition).

    Ca me permet de mettre les colonnes portées ("position", "points", matchs_joues"...) de la table de relation comme attributs de ma classe "EquipeCompetition". Ca semble cohérent, mais est-ce que c'est une bonne pratique au niveau de l'organisation de mes classes ?

  4. #4
    Membre expérimenté
    Profil pro
    Responsable de service informatique
    Inscrit en
    Août 2006
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 174
    Par défaut
    Tu écris: mais j'ai l'impression qu'il y a une bonne pratique dans ce cas...

    En fait selon moi, cela dépend comment tu intellectualises la chose.

    Tu crées un objet equipe donc pour moi tout ce qui est propre à l'équipe en question: attributs (points, positions, etc..), méthodes, doivent appartenir à cette classe.

    Natso

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 26
    Par défaut
    D'accord, donc si je résume : toi tu n'aurais pas créé de classe "EquipeCompetition", tu aurais placé une méthode "getClassement" dans la classe "Equipe" (pour connaître son classement dans une compétition) et une méthode "getClassement" dans la classe "Competition" (pour avoir le classement complet).

    Pourquoi pas. Merci pour tes réponses, j'aimerai d'autres avis si c'est possible.

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 042
    Billets dans le blog
    6
    Par défaut
    Tout dépend du point de vu fonctionnel que vous adoptez.... Si pour vous les équipes sont prépondérante, alors la création de cette classe n'est pas importante. Mieux vaut donc "intégrer" ces informations à un autre objet. Si pour vous le classement est prépondérant alors oui....

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 26
    Par défaut
    Merci SQLPro pour ta réponse également, je vais continuer mon analyse pour voir si ma table de relation nécessite vraiment une classe "EquipeCompetition" (ou "Classement"), sinon je mettrai ça dans la classe "Equipe".

    Je mets en résolu, si jamais il y a d'autres avis je suis preneur.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/04/2008, 14h14
  2. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  3. Réponses: 6
    Dernier message: 20/04/2007, 15h24
  4. "ajouter une méthode dans une méthode"
    Par Zorgloub dans le forum Langage
    Réponses: 1
    Dernier message: 09/04/2006, 12h53
  5. Réponses: 2
    Dernier message: 31/08/2005, 16h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo