Vous n'êtes pas identifié(e).
Bonjour,
Après avoir trouvé un PDF assez bien fait sur la création de BDD qui explique le MCD puis MLD pour arriver au MPD, j'ai pu comprendre plusieurs règles importantes.
Cependant je ne maîtrise pas encore tout, loin de là. J'ai modifié quelque peu le MCD précédemment établi en fonction de vos conseils et j'ai rajouté quelques attributs.
Je vous le joins ci-après: merci de me dire si vous voyez des choses qui ne vont pas ou si vous auriez fait autrement.
Cependant, il me reste des questions auxquelles je n'arrive pas à trouver de réponses (je me mélange un peu):
1) Dans l’entité Equipes, je ne sais pas si les attributs Partie_gagnee, Partie_nulle, Partie_perdue doivent figurée ou non dans cette entité. En effet, on peut calculer le nombre de partie gagnée d’une équipe en comparant le score de l’équipe et le score de l’adversaire pour chaque partie.
Or des champs calculés ne doivent pas apparaître dans une entité. En revanche, si je les enlève, comment je vais obtenir ces données (ainsi que le nombre de point marqué, le nombre de point encaissé, le goal-average) afin de faire un classement? Seulement avec des requêtes ou dois-je faire une entité Résultats?
2) Dans l’entité Parties, j’ai un attribut id_eq1 et un attribut id_eq2, cela n’est pas redondant avec l’association Participer? J’ai un peu de mal à voir comment bien modéliser le fait que dans une partie, 2 équipes s’affrontent (sachant que Equipes est une entité en relation avec Parties)
Je pense être bon au niveau des cardinalités aussi?
Merci d'avance pour votre aide,
bonne soirée
nico
Hors ligne
Cependant, il me reste des questions auxquelles je n'arrive pas à trouver de réponses (je me mélange un peu):
1) Dans l’entité Equipes, je ne sais pas si les attributs Partie_gagnee, Partie_nulle, Partie_perdue doivent figurer ou non dans cette entité. En effet, on peut calculer le nombre de partie gagnée d’une équipe en comparant le score de l’équipe et le score de l’adversaire pour chaque partie.
Or des champs calculés ne doivent pas apparaître dans une entité. En revanche, si je les enlève, comment je vais obtenir ces données (ainsi que le nombre de point marqué, le nombre de point encaissé, le goal-average) afin de faire un classement? Seulement avec des requêtes ou dois-je faire une entité Résultats?
Au niveau conceptuel il faut se montrer le plus respectueux possible des formes normales et de la règle de séparation des données et des traitements. Tout ce qui résulte d'un calcul ou de l'application d'un algorithme assimilable à un calcul n'a rien à faire dans le MCD.
2) Dans l’entité Parties, j’ai un attribut id_eq1 et un attribut id_eq2, cela n’est pas redondant avec l’association Participer? J’ai un peu de mal à voir comment bien modéliser le fait que dans une partie, 2 équipes s’affrontent (sachant que Equipes est une entité en relation avec Parties)
En fait, au niveau conceptuel, Parties n'est pas une entité, il s'agit d'une association entre deux équipes pour participer à un concours, selon une formation, sur un terrain donné.
Quant aux cardinalités celle entre Equipes et Participer est fausse, une équipe participera aux n parties d'une rencontre.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Hors ligne
Bonjour,
Ca fait un long moment que je n'ai pu venir, désolé, boulot oblige.
J'avais préparé un MCD pour toi, et juste avant de le poster, j'ai lu ce qui viens d'être dit, et il me reste une question fondamentale à te poser, et qui est finalement, très caractéristique de ta gestion.
Peux-tu me confirmer que tu ne souhaites pas voir ton application gérer les joueurs et leurs affectations au sein d'une équipe pour une partie donnée ?
Ceci est fondamental pour que je puisse finaliser ma proposition de MCD à ton cahier des charges.
Cordialement,
Jc
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Bonjour Jc,
Je te remercie de revenir vers moi dans un premier temps et je comprend que tu aies d'autres obligation!
Je ne sais pas si j'ai saisie ta question. Je vais te répondre et tu me diras si cela répond bien à ton questionnement.
Pour une partie donnée, chaque équipe rencontre donc une autre équipe. Chaque équipe décide d'elle même quel(s) joueur(s) vont participer à la partie. si nous avons une équipe "France" composé des joueurs "A", "B", "C" et "D" pour un concours donné, c'est elle qui va gérer quels joueurs vont faire quelle partie.
Par exemple si la partie 1 est en triplette, elle peut décider de faire jouer A, B et C ensemble ou une autre combinaison.
partie 2: A et B si la partie est en doublette
En aucun cas l'application ne s'occupe de savoir quels joueurs vont jouer. Elle doit "juste" s'occuper de savoir qu'elle équipe joue contre qu'elle autre équipe afin d'enregistrer les résultats.
Les noms des joueurs pour une équipes servent à la limite pour l'inscription, la remise des prix mais dans les parties, on utilisera le nom de l'équipe.
Voila, je ne sais pas si j'ai répondu à ta question?
Sinon redis moi pour d'autres précisions.
Je te remercie par avance,
bonne journée,
cordialement,
nico
Hors ligne
Bonjour,
Tu as parfaitement bien répondu à ma question. Je te poste mon MCD ce soir.
Cordialement,
Jc
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Ok,
encore merci d'avance!
cdlt,
nico
Hors ligne
Bonsoir,
Voici le MCD promis. Je n'ai pas vulgarisé le contenu conceptuel, mais le modèle est là. Je reste à ta disposition pour des informations complémentaires si tu n'as pas compris quelque chose.
[img align=MCD]http://www.tse-online.fr/tmp/mcd_nicodebut.png[/img]
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
j'peux faire une remarque sur la table joueur ?
sexe caracter(1)
çà rentrera jamais, c'est trop pti :D:D
sinon pour la table compo_equipe, joueur_id aurait été plus logique
c'est tout
a++
Hors ligne
Bonjour,
J'aime bien ta remarque pierrot
pour répondre à ta question j'ai décalé un peu la table c_etypes pour qu'on puisse mieux voir la relation entre la table joueurs et compo_équipes. De plus la clé primaire de la table compo_équipes est composée de : e_id=id équipe ; j_id=id joueur et pour finir c_id=id club. Donc je ne vois pas où se trouve le manque de logique entre nous^^. Tout y est. note : j'ai rajouté le num joueur défois que nico décide de mettre un dossard à un joueur, histoire de s'y retrouver plus facilement.
@nico: j'ai oublié cependant le champ nb_parties dans la table concours, mais c'est sans impact sur le modèle conceptuel.
Dernière modification par Jc (26-04-2011 21:07:56)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Saluton,
Bravo et merci à Jc pour le temps passé et le travail réalisé mais, ce MCD, en toute rigueur, n'en est pas un.
Je m'explique, au stade conceptuel, la présence dans les entités d'attributs correspondant à des clefs étrangères est, à tout le moins, prématurée.
Il en va de même pour l'entité compo_equipes qui, à ce stade, n'est qu'une relation entre les trois entités joueurs, équipes et concours.
J'observe, d'ailleurs, que vous parlez de tables alors qu'il est censé n'être encore question ici que d'entités et de relations.
Il ne s'agit pas non plus d'un MLD, non plus qu'un MPD, bref je ne sais pas trop de quoi il s'agit mais il ne m'apparaît pas très pédagogique de pratiquer ainsi la confusion des genres.
Et, n'en déplaise à Pierrot, cela me semble plus préoccupant que la taille supposée du sexe des anges.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Bonjour à tous
Je vais tout d'abord remercier Jc pour le temps passé à réaliser cela. J'avoue que j'ai un peu pris peur en voyant ton schéma et j'ai quelques questions à ce sujet:
Je n'ai pas très bien compris ce que représente (et à quoi va servir) la table c_etypes?
De même pour la table c_pmode?
Une autre question par rapport à la table compo_équipes, pourquoi entre-t-elle en compte vu que l'on ne s'occupe pas de savoir qu'elle va etre la composition d'une equipe pour une partie donnée?
Dans la table "joueurs" ne manque-t-il pas une clé étrangère vers equipes?
Merci de ton explication Maljuna Kris, comment verrai-tu le MCD pour toi? ceux que j'ai posté avant sont trop simpliste à mon avis.
Merci de votre aide en tout cas, cela me fait avancer!
Hors ligne
Bonjour à tous,
@MK: 1) Tout le contenu est un contenu logique. 2) les termes "AUTO_INCREMENT" ne sont que des commentaires perso et ne font pas partie du modèle. 3) C'est plus facile de les appeler "tables" que "rectangles" ou "entités" bien "qu'entité" soit le terme exact je te l'accorde. 4) les liaisons en rouge et vert ne sont là que pour une simple raison. Je n'avais pas le temps de développer 2 modèles. J'ai créé directement le MRD et lors de la conversion en MCD ils sont restés car à ce stade ce ne sont que des doublons des relations visibles. 5) Une table de jonction dans un MRD à toute sa place au sein d'un MCD en tant qu'entité à part entière. Ensuite tu les appele comme tu veux hein. Ici les entités ont le nom des tables et les relations le nom des clés étrangères. J'ai bien précisé que je n'avais pas pris le temps de vulgariser le contenu du MCD avec des noms plus conceptuels.
@ nico : 1) "la table c_etype" représente le paramétrage d'un type d'équipe. Rapprochée à ton CDC, cela contiendra les infos "MIXTE", "MASCULINE", "FEMININE".
2) "La table c_pmode" représente le paramétrage d'un mode (ou le nom que tu souhaites) de partie, dans ton cas de figure : doublette, triplette, etc...
3)
Une autre question par rapport à la table compo_équipes, pourquoi entre-t-elle en compte vu que l'on ne s'occupe pas de savoir qu'elle va etre la composition d'une equipe pour une partie donnée?
Dans la table "joueurs" ne manque-t-il pas une clé étrangère vers equipes?
"La table compo_equipes" sert à affecter l'ensemble des joueurs inscrits d'un club au sein de l'équipe qui lui est associée. Tu remarqueras que dans l'entité partie il n'est pas renseigné de joueurs mais bien une équipe dans laquelle tu y mets ta sélection de joueurs (inscrits dans cette équipe) comme tu le souhaites.
De plus, la relation qui doit éxister entre l'entité joueurs et compo_equipes qui sera représentée plus tard en clé étrangère est bien présente.
++
Dernière modification par Jc (27-04-2011 11:55:49)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Ok, merci pour toutes ces explications.
On peut donc dire que tu as fais ici un MLD (même si on ne peut pas l'appeler vraiment comme ça d'après MK)
Avec ce MLD, peut-on dire que "la première phase" est terminée?
Car ensuite, je sais qu'il y a le MPD mais je ne sais pas si nous avons toutes les infos, données pour passer à cette étape.
Merci d'avance en tout cas pour m'orienter et me guider dans les nombreuses étapes de ce projet (Je ne le pensais pas si complexe mais c'est très intéressant)
Hors ligne
Re,
Bien qu'il ne faille pas confondre contenu logique et représentation logique, et qu'il s'agit bien ici d'un MCD, tu tiens ton MLD de part le fait que je n'ai pas vulgarisé le contenu de ton MCD. La seule chose qui te reste à faire pour avoir un vrai MLD c'est de rendre le contenu dépendant du type de la base de données que tu souhaites utiliser.
Dernière modification par Jc (27-04-2011 12:06:13)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Ok,
justement, j'en avais parlé un peu plus haut avec MK. L'idéal serait que je puisse avoir une portabilité pour cette application. Ainsi, pouvoir la stocker sur une clé usb et la déplacer d'un PC à un autre serait le top.
Après je ne connais pas tous les types de bases de données actuels. Peux-tu me donner le nom de ceux que tu connais et je regarderai en fonction de ce que je veux lequel irait le mieux?
merci encore
Hors ligne
Même si, au fond, la Terre ne va pas s'arrêter de tourner parce qu'on n'appelle pas un chat un chat, je trouve tout à fait regrettable de galvauder à ce point les concepts et, surtout, les phases de la démarche de conception, a fortiori sur un forum de débutants.
Le mauvaises habitudes ont la fâcheuse tendance à se mettre plus rapidement et durablement en place que les bonnes.
La méthodologie Merise, notamment pour les données, ne souffre pas qu'on brûle les étapes. Mélanger le conceptuel, le logique voire le physique est, sur le très moyen terme, la plupart du temps très dommageable.
Mais j'en resterais là de mes commentaires, n'ayant ni le temps, ni l'envie de polémiquer.
Faîtes vos expériences, et assumez-en les conséquences.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
la guerre est déclarée ?
a++
Hors ligne
Tu as raison MK, j'aurais surement du y passer un peu plus de temps rien que pour les bonnes raisons que tu viens d'évoquer.
Rien ne t'empêche vu que tu es à la retraite de faire un topic sur le sujet, détaillé et documenté, dans ce but.
@ Nico : Ms Access, Ms SQL Server, MySQL, Car ce sont celles sur lesquelles je travaille le plus en ce moment.
Dernière modification par Jc (27-04-2011 13:49:10)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Rien ne t'empêche vu que tu es à la retraite de faire un topic sur le sujet, détaillé et documenté, dans ce but.
Hélas, mon bon Jc, grâce à ce brave petit Nicolas, ma retraite qui s'annonçait depuis des lustres pour le 6 novembre prochain est retardée au 1er avril suivant.
Et puis d'où tiens-tu que les retraités aient du temps de libre ? Tous ceux que je connais n'ont pas une minute à eux, les bougres, ils n'en finissent pas d'avoir quelque urgence à gérer ou quelque retard à combler.
Ah non, décidément, la retraite ça n'a pas l'air d'être une sinécure.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Que dire MK si ce n'est que j'en suis désolé pour toi. Puis pour la retraite tu as sans doute raison aussi. J'avais cru comprendre ne serait-ce qu'à notre différence de nombre de posts sur ce fofo, que tu as déjà plus de temps que moi à y consacrer. Mais cela doit très certainement être un point de plus à relativiser ne serait-ce que de part le fait que tu séjournes sur ce forum depuis plus longtemps que moi.
Dernière modification par Jc (27-04-2011 14:43:12)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne