[Merise] Un MCD qui commence à devenir un peu compliqué.

Un MCD qui commence à devenir un peu compliqué. [Merise] - SQL/NoSQL - Programmation

Marsh Posté le 04-04-2004 à 10:55:24    

Bonjour,
 
je suis en train de réaliser un script pour gérer des manifestions de jeu en réseau mais je n'arrive pas bien à modéliser le modèle conceptuel, voici quelques définitions :
 
- Un joueur peut s'inscrire à la manifestion :
-> Sans s'inscrire à un tournoi.
-> Sans forcément avoir besoin d'avoir une équipe.
-> Il peut jouer avec une équipe sur un jeu et seul à un autre.
 
C'est là que se pose mon problème, je ne vais pas faire deux liens :
- joueur -> manifestion
- joueur -> equipe -> manifestion  
 
Si ?
 
J'avais pensé faire une équipe "sans_equipe", un tournoi "sans_tournoi", des clauses virtuelles pour m'aider à gérer. Rhaa ça y est je pète un cable, je comprend plus rien  :pt1cable:, aidez moi svp  :jap: .
 
Et voilà, dans l'ordre chronologique, deux modèles que j'ai réalisé.
 
http://www.masterjul.net/merise/mcd.jpg
 
http://www.masterjul.net/merise/mcd2.jpg
 
Merci pour votre aide.

Reply

Marsh Posté le 04-04-2004 à 10:55:24   

Reply

Marsh Posté le 04-04-2004 à 13:18:29    

arf pas le temps de lire pour linstant mais je vais essayer de taider si je peux  
 
sinon tu les a fait avec quel logiciel tes schemas ???

Reply

Marsh Posté le 04-04-2004 à 15:20:41    

Merci pour ton aide, je les ai fait avec PowerAMC.


Message édité par Master_Jul le 04-04-2004 à 15:20:59
Reply

Marsh Posté le 05-04-2004 à 11:07:24    

:bounce:

Reply

Marsh Posté le 05-04-2004 à 14:22:23    

Master_Jul a écrit :

C'est là que se pose mon problème, je ne vais pas faire deux liens :
- joueur -> manifestion
- joueur -> equipe -> manifestion  
 
Si ?


Bonjour
 
Tu as raison de ne pas faire 2 liens.
 
La relation "Participation Manif" de ton premier MCD est suffisante, je pense.
La relation "Participe" entre Equipe et Manifestation (2e MCD) est sympa mais n'apporte pas grand chose au modèle, dans la mesure où si un joueur de l'équipe ne vient pas, l'équipe peut continuer de participer à la manifestation. Donc cela sera source de problèmes dans les traitements à adopter par la suite.
De plus, un joueur pourrait participer seul et par l'intermédiaire d'une ou plusieurs équipes auxquelles il appartient. Difficile ensuite de savoir combien de joueurs participent réellement à la manifestation.
 
Une solution : tu peux faire porter, sur la relation "Participation Manif", l'information pour savoir s'il s'inscrit seul ou dans le cadre d'une équipe, en faisant participer l'entité Equipe à la relation "Participation Manif" (relation à 3 pattes ;) ).
Seul problème : le joueur ne peux plus participer seul à une manif.
2 résolutions :  
- soit tu crées une équipe virtuelle qui correspondrait aux  
joueurs seuls (hors équipe). Tous les joueurs seraient de facto inscrits dans cette équipe.
- soit tu dénormalises, au niveau du modèle physique, et tu permets aux joueurs de participer sans indiquer d'équipe. Mais dans ce cas, il faudrait veiller lors des traitements que la participation d'un joueur au sein d'une équipe se fasse sans violation des contraintes d'intégrités.
 
Je te conseille la première solution pour simplifier les traitements sans dénormaliser.
Par la suite, par requêtage, il devient facile de connaitre le nombre d'équipes inscrites, le nombre de joueurs inscrits par équipe, le nombre total de joueurs distincts inscrits, etc...
 
Attention tout de même, il y a une contrainte d'intégrité fonctionnelle entre les relations "Participation Manif" et "Compo équipe". Il s'agit d'une contrainte d'inclusion qui s'exprime ainsi :
Tout joueur X s'inscrivant à une manif par une équipe A, doit nécessairement appartenir à l'équipe A.
 
D'ailleurs cette remarque est valable aussi pour ta relation "Participation Tournoi".
 
Je viens de voir qu'il y a aussi 2 CIF sur la relation "Repas choisi".
La premiere : c'est une contrainte d'unicité qui implique qu'un joueur inscrit à une manifestation ne doit choisir qu'un seul repas.
La seconde : contrainte d'inclusion avec la relation "Participation Manif" qui implique qu'un joueur doit s'être inscrit pour pouvoir ensuite choisir un repas.
 
Voilà, c'est un peu long, mais avec un schéma cela serait + facile à exprimer.

Reply

Sujets relatifs:

Leave a Replay

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