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

Schéma Discussion :

MCD Relation récursive


Sujet :

Schéma

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 95
    Par défaut MCD Relation récursive
    Bonjour à tous !

    Voilà je suis en train d'essayer de développer une application pour un club de rugby en java.

    Dans le MCD que je conçois, j'ai une entité Equipe, et après avoir était un peu conseillé, il semblerait qu'il soit préférable de créer une relation récursive sur cette entité Equipe pour créer une relation Match.

    Cependant, dans ce cas, les cardinalités entre Equipe et Match puis Match et Equipe serait 1-1 -[ ]- 1-1 .

    Le problème est que je ne sais pas comment gérer de telles cardinalités dans la réalisation du MLD, surtout que mon association Match contient un id_match, une date, un score etc .

    Merci pour votre aide par avance !

  2. #2
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Par défaut
    Bonjour Lightalex01,

    Citation Envoyé par Lightalex01
    Cependant, dans ce cas, les cardinalités entre Equipe et Match puis Match et Equipe serait 1-1 -[ ]- 1-1.
    ==> non :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       |------0,n------|
    Equipe      [Disputer match]
       |------2,2------|
    Ce qui donne :
    Equipe(Id_Equipe, Nom, ...) ;
    Match(Id_Match, #Id_Equipe_1, #Id_Equipe_2, Date, Score_Equipe_1, Score_Equipe_2, ...) ;
    ==> index unique {#Id_Equipe_1, #Id_Equipe_2}.
    ou
    Equipe(Id_Equipe, Nom, ...) ;
    Match(Id_Match, Date, ...) ;
    Match_Equipe(#Id_Match, #Id_Equipe, Score, ...) ;
    ==> trigger interdisant des matchs de plus de deux équipes.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 95
    Par défaut
    Merci pour le coup de main, je vais essayer la première solution, j'espère que ça marchera bien comme ça !

    -----------------------------------

    Deux petits points sur lesquels j'ai besoin d'éclaircissements si possible :

    • Si mes cardinalités sont de 0,n de l'entité Equipe vers l'association Disputer un match, puis 2,2 , normalement il ne peut y avoir création d'une table Match lors de la conversion en MLD comme vous me le suggérez (je ne suis pas très sûr) !

    • Autre problème, je possède une entité Joueur dans ce MCD, et j'aimerais garder une sorte d'Historique pour chaque match et chaque joueur afin d'avoir le nombre de point marquer par un joueur, le nombre de cartons pris etc. Auriez-vous une aidé de la manière de concevoir ceci au travers du MCD ?


    Merci d'avance !

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Pas d'accord avec ton schéma Richard !
    Selon celui-ci, une équipe participe au moins deux fois et au plus deux fois à l'association "disputer match".

    Je ferais plutôt ceci :
    equipe -0,n----disputer----2,2- match

    Ou encore ceci :
    equipe -0,n----recevoir----1,1- match
    |-----------0,n----se déplacer----1,1---|

    Ce qui doit donner les mêmes tables :
    equipe (eq_id, eq_nom...)
    match (mtc_id, mtc_id_equipe_receveuse, mtc_id_equipe_visiteuse, mtc_date...)

    Avec peut-être une contrainte d'unicité sur le triplet {mtc_id_equipe_receveuse, mtc_id_equipe_visiteuse, mtc_date} pour empêcher deux équipes de se rencontrer plusieurs fois le même jour. Encore que dans un tournoi, cela est possible (en poule et en finale par exemple).

    Autre problème, je possède une entité Joueur dans ce MCD, et j'aimerais garder une sorte d'Historique pour chaque match et chaque joueur afin d'avoir le nombre de point marquer par un joueur, le nombre de cartons pris etc. Auriez-vous une aidé de la manière de concevoir ceci au travers du MCD ?
    Maintenant qu'il y a une entité type "match" dans le MCD (et donc une table "match" dans la BDD), il est facile d'associer les joueurs à un match :
    joueur -0,n----participer----0,n- match

    Je ne peux pas le représenter ici mais il faut en plus une contrainte indiquant que les joueurs participant à un match doivent faire partie d'une des équipes du match.... au moment du match !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

  5. #5
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Par défaut
    Bonjour Philippe et Lightalex01,

    Citation Envoyé par Philippe
    Pas d'accord avec ton schéma Richard !
    ==> tu as raison : je ne le suis pas non plus (schéma un peu rapide). Tes deux représentations sont les bonnes.


    @Lightalex01
    sur la forme : il vaut mieux créer un nouveau message dans la même discussion, que de modifier un ancien message...
    sur le fond :
    Citation Envoyé par =Philippe
    Maintenant qu'il y a une entité type "match" dans le MCD (et donc une table "match" dans la BDD), il est facile d'associer les joueurs à un match :
    joueur -0,n----participer----0,n- match

    Je ne peux pas le représenter ici mais il faut en plus une contrainte indiquant que les joueurs participant à un match doivent faire partie d'une des équipes du match.... au moment du match !
    ==> il faut, peut-être, faire intervenir une notion de "saison" (saison 2011-2012) : la composition d'une équipe diffère suivant la saison. Dans ce cas, un Id_Saison d'une nouvelle table Saison, devra identifier un match et une composition d'équipe.

    Pas trop le temps de détailler, en ce moment.

  6. #6
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Ces histoires de matches ont déjà été développeés plusieurs fois sur le forum. Il s'agissait plutôt de foot que de rugby mais le principe reste le même.

    Allez le Stade Toulousain ! Faites-nous le doublé Bouclier + Coupe d'Europe cette année !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

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

Discussions similaires

  1. [MCD] Relation n-aire et partie de clef null
    Par wil4linux dans le forum Schéma
    Réponses: 2
    Dernier message: 27/09/2007, 10h09
  2. [MCD]relation entre tables comment faire?
    Par hicham28 dans le forum Modélisation
    Réponses: 8
    Dernier message: 10/04/2007, 21h32
  3. [MCD] Relation récursive
    Par storm_2000 dans le forum Schéma
    Réponses: 4
    Dernier message: 08/11/2006, 20h40
  4. [MCD]Relation Utilisateurs - Groupes - Fonction
    Par clarence dans le forum Schéma
    Réponses: 7
    Dernier message: 07/06/2006, 13h52
  5. Relation récursive pour exporter vers XML
    Par bossun dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 21/08/2005, 14h17

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