N'hésitez pas à discuter et à partager avec la communauté de ce cours. Vous pouvez aussi répondre aux questions des autres.
Je suis là aussi pour répondre à vos interrogations et vous accompagner dans votre apprentissage .
Si vous avez une question concernant le fonctionnement du cours (inscription au cours, accès aux quiz, envoi des exercices, …), contactez directement OpenClassrooms à hello@openclassrooms.com
ce cours est très intéressant et il me semble très précis.
Je constate que le "score" aux quizz est de 65% ("Moyenne de la classe 65 %").
Je dois l'avouer je suis pire avec pour le premier quizz seulement 50% : -) ( erreurs ou oublies dans des réponses multiples.)
Cela pose peut être une question et un peu de réflexion.
Les questions des quizz sont-elles bien posées ?
Le cours est pourtant clair. Je remarque en ayant fait pas mal de cours avec OpenClassRooms que parfois il n'y a pas une bonne mise en valeur des connaissances acquises lors de ces cours lors des quizz. Le quizz est-il une sanction ou une confirmation de la connaissance acquise ?
Ce n''est évidement qu'une opinion personnelle. ;-)
Tout d'abord merci pour vos retours. Ceci est important pour améliorer la qualité des cours.
En ce qui concerne les quiz, ils permettent de valider le fait que vous ayez vu, mais aussi compris le cours. Ne pas faire 100% n'est pas dramatique, certaines questions comportant des subtilités qui ne sautent pas forcément aux yeux à la première lecture du cours.
Cependant, du fait de votre retour, j'ai fait une relecture des quiz et apporté quelques précisions sur certaines questions / réponses du premier quiz. Il n'est pas impossible que je complète également le dernier quiz un peu plus tard, mais je suis concentré pour le moment sur la création d'un nouveau cours.
Si vous le souhaitez, vous pouvez réinitialiser le premier quiz et le repasser dans sa nouvelle version. (Attention, ceci n'est possible qu'une seule fois).
En espérant que cette fois ci, les questions / réponses vous paraissent plus claires.
je me suis mis sur le cours "Faites une base de données avec UML", dans ce cours on me préconise le logiciel " SQL Power Architect". Sauf que , surprise une fois sur le site, il n'en ai rien ! que des erreur 404 au sujet de ce logiciel.... :/ A-t'il été abandonner par Sql power ?
Bonjour, je viens de m'apercevoir que SQLPower avait fait un gros changement sur son site internet ! Je viens de corriger le cours en conséquence pour mettre les bons liens.
dans l'exemple "ticket", vous précisez que la classe d'associations doit être traitée en même temps que les associations sauf qu'on ne le voit pas dans la suite du cours.
merci pour vos réponses, j'ai un petit problème, quand je fais un glisser déposer de ma base de donnée sur la plan de travail du logiciel, le logiciel me dit : Could not find any objects to add to the PlayPen comment résoudre ce problème ? svp
dans l'exemple "ticket", vous précisez que la classe d'associations doit être traitée en même temps que les associations sauf qu'on ne le voit pas dans la suite du cours.
pouvez-vous expliciter ce point SVP ?
Merci d'avance
Carole
Bonjour, Si vous parlez du chapitre 2.3, nous avons déjà vu comment mettre en œuvre les différents types d'association et les classes d'association dans le chapitre 1.4. Je vous conseille de vous y reporter. Vous verrez qu'elles sont traduites dans le MPD comme des associations de type "plusieurs-à-plusieurs".
j'ai un petit problème avec la clé composite de la table ticket_associe, je comprend très bien que ticket_numéro et lié avec numéro de la table ticket (si je peux m'exprimer ainsi) par contre je ne vois pas très bien avec quoi est lié ticket_associé_numero? il semble lié sur sur la même colonne et j'ai du mal à comprendre ce choix!
Merci pour votre éclairage qui sera le bienvenu.
Bien à vous,
Philippe
- Edité par Philippe2463 18 juillet 2017 à 11:41:50
La chute n'est pas un échec, l'échec c'est de rester là où on est tombé!
La table ticket_associe permet de représenter l'association réflexive sur la table ticket. Cette association permet de voir quels sont les tickets associés à un ticket.
Cette association est de nature plusieurs-à-plusieurs car :
un même ticket peut être associé à plusieurs tickets
et un ticket peut avoir plusieurs tickets associés
Il faut donc créer une table pour matérialiser cette association. La clé de cette table est composée de clés étrangères vers les tables de l'association. Or ici il s'agit de la même table de chaque côté de l'association car c'est une association réflexive. Donc on se retrouve avec deux clés étrangères pointant toutes les deux vers la table ticket.
J'ai une question concernant ce cours, disons que j'étudie une situation et je ne sais pas comment la représenter en UML.
Voilà mon problème :
j'ai à gérer des personnes physiques et des personnes morales
les personnes physiques peuvent exister indépendamment des personnes morales
les personnes physiques peuvent travailler pour une ou plusieurs personnes morales
les personnes physiques sont associées à des évènements dans des lieux, ces lieux pouvant être soit simplement des lieux (salle, lieu public, ...) ou alors des lieux que je qualifierais de privés (chez une personne physique ou morale)
Donc personnellement je considère qu'une personne physique est une personne physique, rien de spécial à ce sujet, et qu'une personne morale peut être :
une association, une entreprise, ...
le lieu où siège l'association, l'entreprise, ...
un lieu géré par l'association, l'entreprise, ...
Voilà ce que j'ai fait en tout bon débutant qui se respecte (c'est la première fois que je raisonne avec UML) :
une classe Lieu
une classe abstraite Personne (doit-elle hériter de la classe Lieu ?)
la classe PersonnePhysique hérite de la classe Personne
la classe PersonneMorale hérite de la classe Personne
Déjà une première question peut se poser : est-il judicieux d'avoir une classe abstraite Personne ? Bon bref ... j'essaie d'appliquer les contraintes (ne pas retrouver plusieurs fois la même information dans une base de données, donc créer une nouvelle table s'il y a des données redondantes, notamment je pense à mes adresses).
Et là où je m'arrache les cheveux sur la tête, c'est en me disant qu'il me sera nécessaire de créer une table d'association où il y aura l'identifiant de la personne physique et l'identifiant de la personne morale, alors que la personne physique hérite de la personne morale.
Je ne sais pas si c'est très clair mon histoire, mais si vous arrivez à comprendre quelque chose, n'hésitez pas à me donner votre point de vue.
Merci d'avance pour vos suggestions et votre aide.
Vous allez voir que ce n'est pas bien compliqué à comprendre.
Le but de la requête est d'afficher le nombre de tickets de chaque projet, donc y compris les projets qui n'ont pas de ticket, dans ce cas il faut afficher 0.
D'où l'intérêt d'utiliser LEFT JOIN afin, d'une part, de garder la liste complète des projets, d'autre part d'afficher le nombre de tickets reliés à chacun des projets.
Voilà.
Vincent
PS J'en profite pour relancer mon pécédent message (voir 2 messages plus haut). Personne n'a de réponse à m'apporter ?
Pour moi, Personne et Lieu sont bien deux éléments différents dans votre domaine fonctionnel.
Donc, je vous laisse encore y réfléchir par vous même, mais voici quelques pistes :
OK pour que PersonnePhysique et PersonneMorale hérite de Personne.
Mais PersonnePhysique n'hérite pas de PersonneMorale.
Lieu est une classe à part.
PersonneMorale n'est PAS un Lieu.
PersonneMorale peut être associée à un Lieu
PersonnePhysique est associée à un Lieu avec une classe d'association Evènement, ou alors PersonnePhisyque est associée à un Evènement qui lui est associé à un Lieu. Cela dépend des cardinalités...
Merci beaucoup pour ces suggestions. Effectivement cela m'aide à y voir plus clair.
Je pense que je vais opter pour la situation suivante :
- personne physique et personne morale héritent toutes deux de personne
- les lieux sont effectivement des classes à part entière
- une personne physique sera associée à un évènement qui lui sera associé à un lieu
Par contre en soi faire que personne physique et personne morale héritent de personne, ça peut se faire dans une base de données ? Cela signifie que j'aurai 3 tables :
- une pour les personnes
- une pour les personnes physiques
- une pour les personnes morales
???
A la base je pensais plutôt créer une table avec les personnes physiques et une table avec les personnes morales, étant donné que les personnes physiques peuvent également être rattachées à une ou plusieurs personnes morales (c'est dans le milieu associatif, il peut y avoir facilement une personne qui est président d'une association, secrétaire d'une autre, ...).
Qu'en pensez-vous ? Du coup vous voyez j'ai encore besoin d'éclaircissements ... ;). Si vous avez encore un petit moment pour me répondre ... ;).
C'est bien sur ce chapitre traitant de l'héritage que je me base pour me poser ces questions-là. Ca donne envie de le faire et de créer les classes associées du côté PHP. Si je suis ce chapitre, je crée effectivement 3 tables différentes : personnes, personnes_physiques, personnes_morales dans ma base de données. Et rien ne m'empêche ensuite de travailler sur des vues matérialisées vm_personnes_physiques et vm_personnes_morales pour accéder à l'intégralité des données de l'une ou l'autre.
Cependant ma question aurait pu être posée autrement : n'est-il pas parfois judicieux d'enfreindre cette règle d'héritage pour plus de simplicité dans la conception de l'application ? Est-ce une règle immuable ou bien peut-on se permettre de peser le pour et le contre ? Cette question étant dans le but de bien faire les choses ;).
Même en créant 2 tables (personnes_physiques et personnes_morales) sans utiliser l'héritage, je ne pense pas avoir de redondance de données. Je m'étais posé cette question d'héritage simplement par le fait que chacun de ces deux types de personnes ont des colonnes en commun, notamment une adresse.
En PHP pas de souci, je fais une classe abstraite Personne et deux classes réelles (PersonnePhysique et PersonneMorale) qui héritent de la classe abstraite Personne.
Là où ça me chiffonne, c'est en MySQL ? comment se traduit une classe abstraite dans la base de données ? Est-ce qu'elle existe réellement cette classe abstraite ? Ou bien est-ce que tout simplement je crée une table PersonnePhysique et une table PersonneMorale, mais pas de table Personne ?
Selon la description que tu as donné, la classe abstraite Personne comporte au moins un membre Adresse, qui se traduira par une colonne dans la table correspondante.
Au delà de tes personnes, je suppose que ta BD va gérer d'autres choses en lien avec ces personnes, qu'elles soient morales ou physiques. C'est la que la table personne devient incontournable. Sa clé primaire sera utilisée comme clé étrangère dans les tables liées.
Pour les tables PersonneMorale et PersonnePhysique, leurs clés primaires respectives seront également clés étrangères et feront référence à la table Personne. Seule la table Personne contient un id auto incrémenté
Plus globalement, si ta classe abstraite ne contient aucun membre, et qu'elle n'a aucun lien autre que l'héritage avec ses classes descendantes, on peut éventuellement s'en passer dans le modèle physique. Dans les autres cas, elles est incontournable.
En fait ça me semblait trop bizarre de créer une table Personne juste avec une adresse. Effectivement les adresses ne seront utilisées qu'une seule et unique fois pour chaque personne, donc je ne voyais pas trop l'intérêt de créer une table à part entière. Quelque part ça me donne l'impression comme si je devais créer une table avec des noms, une table avec des prénoms et relier les deux pour en faire une personne : aucun intérêt.
Je remercie tous ceux qui m'ont apporté quelques suggestions par rapport à mon problème.
ça me donne l'impression comme si je devais créer une table avec des noms, une table avec des prénoms et relier les deux pour en faire une personne : aucun intérêt
Et cela ne te semblait pas bizarre de créer deux tables, chacune avec une colonne adresse ?
Une personne a une adresse, qu'elle soit physique ou morale. On crée donc une personne (classe mère) avec une adresse et éventuellement d'autres attributs communs et ensuite une personne morale OU une personne physique par héritage (classe fille) avec les attributs qui lui sont propres.
J'ai essayé d'organiser ma compréhension du cours ici. J'ai encore un peu de mal à voir quel est le lien entre l'UML et le Modèle entité-association. Est-ce que ce se sont deux approches ontologiques différentes? Est-ce qu'il existe d'autres méthodes à part la méthode Merise pour créer un modèle entité-association?
Maintenant que j'ai suivi le cours, je veux faire ma propre base de données. Je suis arrivée au stade de la normalisation. Est-ce que je peux vous montrer ce que j'ai fait pour savoir si la première forme est respectée? Dans ce cas, quel type de diagramme dois-je partager avec vous?
Par ailleurs, j'ai relevé quelques coquilles:
1.2 "ses/est" devraient être "Ces/AIT" (avoir au subjonctif présent)
D'abord merci pour ce cours très clair. Une petite question toutefois. Sur les MDP au départ de certaines relations il y a parfois des petits ronds sur les flèches ou sur les liens simples. Pouvez-vous m'expliquer à quoi ces ronds correspondent ?
Vincent ERHART
Formateur / Développeur web
Vincent ERHART
Formateur / Développeur web
Vincent ERHART
Formateur / Développeur web
Vincent ERHART
Formateur / Développeur web
Vincent ERHART
Formateur / Développeur web
Vincent ERHART
Formateur / Développeur web
Vincent ERHART
Formateur / Développeur web