bonjour a tous je travail sur un projet de gestion de compagnie de transport . j ai effectuer un MCD a partir de jmerise et j aimerais que vous y jeter un coup d oeil afin de me permettre de corriger les lacunes de ma future BD merci.
bonjour a tous je travail sur un projet de gestion de compagnie de transport . j ai effectuer un MCD a partir de jmerise et j aimerais que vous y jeter un coup d oeil afin de me permettre de corriger les lacunes de ma future BD merci.
Gros schéma ! Je ne vais pas avoir le temps de l'examiner et le critiquer en détails...
1) Nommez vos entités types au singulier car elles sont issues des règles de gestion qui décrivent ce qui se passe successivement pour 1 instance de chaque entité type.
2) J'ai l'impression que certaines de vos cardinalités sont à l'envers.
Exemple :
Gare -1,1----Avoir----0,n- Destination
Traduction :
Une gare n'a qu'une destination et une destination peut avoir plusieurs gare.
Quand je suis à la gare de Toulouse, je peux rejoindre plusieurs destinations !
3) Externalisez vos données de référence pour éviter les saisies multiples d'une même données, potentiellement avec des orthographes différentes.
Exemples : Ville et Country de la Gare (pourquoi un coup en français et un coup en anglais au fait ? ), MartialStatus de Personnel, ContratType de Contrat...
Vous pouvez ainsi faire ce morceau de MCD :
Gare -1,1----situer----0,n- Ville -1,1----situer----0,n- Pays
4) Il semble que vous ayez des clés étrangères potentielles dans vos entités-type, donc des associations oubliées.
Exemple : GareOrigine dans Ligne. Il faudrait associer Ligne et Gare.
Je vous laisse déjà vérifier tout ça.
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
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 !
merci Cinephil pour vos remarques effectivement c est un grand MCD il prend en compte la gestion du personnel, la gestion des transferts d argent et colis, du parc auto, et la gestion des tickets. je m exprime beaucoup plus en anglais ce qui fait que des termes anglais se glissent dans mon travail je tacherais de faire attention je viens d'adapter le MCD mais je ne comprend pas trop pourquoi il me faut associer ligne a gare.ci joint le nouveau mcd merci pour l aide
Je vois une propriété "GareOrigine" dans l'entité-type "Ligne". Qu'est-ce que cette "GareOrigine" ? N'est-ce pas une gare représentée par l'entité-type "Gare" ?
Ne devriez-vous pas avoir ce morceau de MCD ?
Gare -0,n----origine----1,1- Ligne -1,1----avoir----0,n- Destination
Et comme une destination n'a qu'une gare, ne serait-il pas plus simple de modéliser ainsi ?
Ligne -1,1----partir----0,n- Gare
|---------1,1----arriver----0,n----|
À quoi sert le libellé de la destination ? Pouvez-vous donner un exemple de destination ?
Continuons à examiner le MCD...
1) Pourquoi y a t-il deux propriétés "Responsable" et "responsable" dans l'entité-type "Gare" ?
Ce responsable est-il un membre du personnel ? Auquel cas il vaut mieux ajouter une association entre "Personnel" et "Gare" ou bien cela peut se déduire via la fonction de la personne. X travaille dans la gare G et à pour fonction "Responsable de gare". La propriété "Responsable" serait alors inutile.
2) Les identifiants ne doivent pas être des varchar mais des entiers.
Le SGBD manipule beaucoup plus vite les entiers (sur 4 octets) que les varchar (1 octet par caractère + 1 pour la longueur de la chaîne).
En plus, l'identifiant peut ainsi facilement être auto-incrémenté.
3) Pour une meilleure lisibilité, laisser de l'espace entre les entités-types "Fonction" et "Contrat".
4) Externalisez le "ContratType" de l'entité-type "Contrat".
Contrat -1,1----typer----0,n- Type_Contrat
5) De même, externalisez la "SituationMatrimoniale" de l'entité-type "Personnel"
6) La "DateEmbauche" est-elle différente de la "DateEntree" du premier contrat de la personne ?
7) Quelle est la signification de l'association entre User, Chauffeur et Personnel ?
Cela veut-il dire que tout User est un Chauffeur membre du Personnel ?
8) Évitez, quand ce n'est pas indispensable, les cardinalités mini à 1 sur chaque branche d'une association.
Vous pouvez ainsi créer vos UsersGroups avant de créer les users. En l'état, votre MCD impose qu'au moins un user soit créé en même temps qu'un user group.
La suite au prochain numéro...
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
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 !
si nous prenons un trajet quelconque qui part de paris a abidjan en passant par bamako et accra nous aurons des passager qui atteindrons leur destination a bamako ou a accra partant de faite la destination peut ne pas etre le point d arriver final de la ligne ou trajet et aussi la destination peut aussi ne pas etre une gare elle peut etre un point d arret( dans le cas des auto bus).
le libelle ici fait référence au nom du point d'arrive par exemple un vole paris-abidjan ou abidjan est le point d arrive d ou la destination.
dans mon cas j ai prévus utilise des identifiants alphanumérique ex (CLT-4789451222 pour référencer les clients, G-450 pour référencer les gares)
la toute première analyse je n avais pas tenu compte de la partie gestion du personnel j avais inséré cette propriété pour avoir le nom du responsable .
pourquoi? je pense quelle peut etre gere simplement par programmation mais j aimerais avoir vos raisons.
la différence entre les deux date est que une personne peut être en CDD ou stage et peux refaire ce cycle plusieurs fois sans être embauche et il n est pas aussi impossible qu elle quitte l entreprise pour y revenir plus tard et il y a des périodes d'essais pour tout le personnel la dateEntree fait référence a la date ou la personne est entrée dans l entreprise pour la première fois.
c est un héritage qui est représenté ainsi. l entité user hérite des propriétés de l entité personnes ainsi que chauffeur.
aussi tout user n est pas chauffeurs!!!! l entité user ici représente les personnes interagissant avec le systeme.
merci en attendant de vous lire ci joint les nouvelle midifaction
Si je comprends bien, vous avez des lignes (par exemple de Paris à Abidjan) qui peut comprendre plusieurs escales (Bamako, Accra).si nous prenons un trajet quelconque qui part de paris a abidjan en passant par bamako et accra nous aurons des passager qui atteindrons leur destination a bamako ou a accra partant de faite la destination peut ne pas etre le point d arriver final de la ligne ou trajet et aussi la destination peut aussi ne pas etre une gare elle peut etre un point d arret( dans le cas des auto bus).
Ligne -0,n----comprendre----0,n- Escale
Et je suppose que chaque escale est ce que vous avez appelé une gare, elle-même située dans une ville.
Ligne -0,n----faire_escale----0,n- Gare -1,1----situer----0,n- Ville -1,1----situer----0,n- Pays
Ce qui n'empêche évidemment pas chaque ligne d'avoir une gare de départ et une gare d'arrivée.On peut ajouter le type d'escale (départ, arrivée, esclae, ravitaillement, douane...) :
Ligne -0,n----faire_escale----0,n- Gare -1,1----situer----0,n- Ville -1,1----situer----0,n- Pays
Type_Escale -0,n---------|
Ce qui donnerait, par exemple, les tables suivantes :
Pays (pays_id...)
Ville (ville_id, pays_id...)
Gare (gare_id, ville_id...)
Ligne (ligne_id...)
Type_Escale (typ_esc_id, typ_esc_libelle...)
Escale (ligne_id, gare_id, type_esc_id...)
Voir modélisation ci-dessus.le libelle ici fait référence au nom du point d'arrive par exemple un vole paris-abidjan ou abidjan est le point d arrive d ou la destination.
Encore une fois, pour des raisons de performance, les identifiants utilisés par la BDD en clé primaire et en clé étrangère doivent être des entiers. Ceci ne vous empêche pas d'ajouter une clé unique signifiante si vous en avez besoin. Par exemple, les numéros de vols d'avion sont référencés internationalement.dans mon cas j ai prévus utilise des identifiants alphanumérique ex (CLT-4789451222 pour référencer les clients, G-450 pour référencer les gares)
Voir l'article de SQLPro au sujet des clés auto-incrémentées.
Parce qu'il est beaucoup plus facile d'ajouter ou de retirer une ligne dans une table de BDD que de modifier un programme et de le redéployer sur tous les sites l'utilisant.Envoyé par CinéPhil
Il se trouve qu'en France, une loi récente (stupide, mais c'est comme ça), a supprimé le terme "Mademoiselle" dans toute référence administrative officielle. Désormais, dès sa naissance, une fille sera officiellement appelée "Madame".
Ceux-qui ont modélisé la civilité dans une table n'auront eu à faire que quelques requêtes sans modifier les programmes. Ceux-ci, utilisant la base de données pour alimenter la liste déroulante affichée à l'écran, n'ayant pas à être modifiés. Par contre, ceux qui ont programmé en dur les 3 civilités M., Mlle et Mme devront modifier leurs programmes et les redéployer.
C'est pareil pour la situation matrimoniale ou pour toute autre donnée de référence (type, genre, catégorie, famille...).
On peut donc trouver cette date par une requête et elle ne devrait pas être enregistrée dans une propriété séparée.la dateEntree fait référence a la date ou la personne est entrée dans l entreprise pour la première fois.
OK. Alors les entités-types User et Chauffeur ne devraient pas avoir leur propre identifiant mais récupéreront leur identifiant relativement à Personne.c est un héritage qui est représenté ainsi. l entité user hérite des propriétés de l entité personnes ainsi que chauffeur.
aussi tout user n est pas chauffeurs!!!! l entité user ici représente les personnes interagissant avec le systeme.
Au niveau des tables, cela donnera ceci :
Personne (ID_personne...)
User (ID_personne...)
Chauffeur (ID_personne...)
=> Les clés primaires des tables User et Chauffeur sont également clés étrangères faisant référence à la clé primaire de la table Personne.
Pas le temps d'en dire plus pour le moment.
A+
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
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 !
sur un trajet quelconque nous pouvons avoir plusieurs escales (point d arret) mais les points d arret (ou escale) ne sont pas forcement des gares dans le cas du transport terrestre (cas du projet) sur la ligne le chauffeur peut marquer un arret aux diferents point de stationnement soit pour descendre des passagers soit douane ou approvisonnement).votre annalyse a fait ressortir aussi une autre entite-type qui est le type de la gare. nous avons des gares principales et des gares de transite. ex sur la ligne abidjan-lome la compagnie a deux gare principale qui sont celle d abidjan et lome et sur le trajet(ligne) il y a aussi une autre gare a accra qui est la gare de transite(ou des verification mecanique peuvent etre effectuer ou aussi l equipage et les passager peuvent se reposer). et sur se meme trajet il y a un point d'arret (qui n est pas une gare raison pour laquelle dans le MCD j ai l'entite type Stationnement)juste apres la frontiere entre la cote d ivoire et le ghana au niveau de cape coast qui permet aux passagers de se desalterer et autre. jespere que je n ai rien manquerSi je comprends bien, vous avez des lignes (par exemple de Paris à Abidjan) qui peut comprendre plusieurs escales (Bamako, Accra).
Ligne -0,n----comprendre----0,n- Escale
Et je suppose que chaque escale est ce que vous avez appelé une gare, elle-même située dans une ville.
Ligne -0,n----faire_escale----0,n- Gare -1,1----situer----0,n- Ville -1,1----situer----0,n- Pays
Ce qui n'empêche évidemment pas chaque ligne d'avoir une gare de départ et une gare d'arrivée.On peut ajouter le type d'escale (départ, arrivée, esclae, ravitaillement, douane...) :
Ligne -0,n----faire_escale----0,n- Gare -1,1----situer----0,n- Ville -1,1----situer----0,n- Pays
Type_Escale -0,n---------|
Ce qui donnerait, par exemple, les tables suivantes :
Pays (pays_id...)
Ville (ville_id, pays_id...)
Gare (gare_id, ville_id...)
Ligne (ligne_id...)
Type_Escale (typ_esc_id, typ_esc_libelle...)
Escale (ligne_id, gare_id, type_esc_id...)
voir le MCD
merci pour le lien j ai maintenant une bonne comprehension de l'importance du type des clefs primaireEncore une fois, pour des raisons de performance, les identifiants utilisés par la BDD en clé primaire et en clé étrangère doivent être des entiers. Ceci ne vous empêche pas d'ajouter une clé unique signifiante si vous en avez besoin. Par exemple, les numéros de vols d'avion sont référencés internationalement.
Voir l'article de SQLPro au sujet des clés auto-incrémentées.
petit soucis de comprehension est ce que les employers d une compagnie de transfert d argent peuvent etre des client de cette meme compagnie si oui on aura donc
personnel -0,n----Remplir----1,1- Bordereau
Chauffeur -0,n----remplir----1,1- borderau
meme probleme avec une personne de type personnel ou chauffeur qui devient passager.
probleme au niveau de la tarification le tarif du ticket passager est fonction de la ligne le tarif du colis est fixer, dans certaines compagnies , en fonction du produit dans d autre en fonction du poids pareil pour les bagages passager alors comment implementer la tarification pour la ligne,les bagages passager, et les colis?
merci pour ton temps et de l aide que tu m apporte ci joint le nouveau MCD que j aisseyais d amenager
petit soucis de comprehension est ce que les employers d une compagnie de transfert d argent peuvent etre des client de cette meme compagnie si oui on aura donc
personnel -0,n----Remplir----1,1- Bordereau
Chauffeur -0,n----remplir----1,1- borderau
meme probleme avec une personne de type personnel ou chauffeur qui devient passager.
probleme au niveau de la tarification le tarif du ticket passager est fonction de la ligne le tarif du colis est fixer, dans certaines compagnies , en fonction du produit dans d autre en fonction du poids pareil pour les bagages passager alors comment implementer la tarification pour la ligne,les bagages passager, et les colis?
merci pour ton temps et de l aide que tu m apporte ci joint le nouveau MCD que je viens de retoucher les modification porte plus sur la gestion du parc auto
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager