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 :

Compagnie de transport


Sujet :

Schéma

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 14
    Points : 6
    Points
    6
    Par défaut Compagnie de transport
    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.
    Images attachées Images attachées  

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    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 !

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    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
    Images attachées Images attachées  

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par donatien4020 Voir le message
    je ne comprend pas trop pourquoi il me faut associer ligne a gare.
    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 !

  5. #5
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    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----|
    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).

    Citation Envoyé par CinePhil Voir le message
    À quoi sert le libellé de la destination ? Pouvez-vous donner un exemple de destination ?
    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.


    Citation Envoyé par CinePhil Voir le message
    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é.
    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)


    Citation Envoyé par CinePhil Voir le message
    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.
    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 .

    Citation Envoyé par CinePhil Voir le message
    5) De même, externalisez la "SituationMatrimoniale" de l'entité-type "Personnel"
    pourquoi? je pense quelle peut etre gere simplement par programmation mais j aimerais avoir vos raisons.

    Citation Envoyé par CinePhil Voir le message
    6) La "DateEmbauche" est-elle différente de la "DateEntree" du premier contrat de la personne ?
    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.

    Citation Envoyé par CinePhil Voir le message
    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 ?
    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
    Images attachées Images attachées  

  6. #6
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    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).
    Si 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...)

    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.
    Voir modélisation ci-dessus.

    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)
    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.
    Voir l'article de SQLPro au sujet des clés auto-incrémentées.

    Citation Envoyé par CinéPhil
    5) De même, externalisez la "SituationMatrimoniale" de l'entité-type "Personnel"
    pourquoi? je pense quelle peut etre gere simplement par programmation mais j aimerais avoir vos raisons.
    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.
    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...).

    la dateEntree fait référence a la date ou la personne est entrée dans l entreprise pour la première fois.
    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.

    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.
    OK. Alors les entités-types User et Chauffeur ne devraient pas avoir leur propre identifiant mais récupéreront leur identifiant relativement à Personne.
    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 !

  7. #7
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Si 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...)
    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 manquer
    voir le MCD

    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.
    Voir l'article de SQLPro au sujet des clés auto-incrémentées.
    merci pour le lien j ai maintenant une bonne comprehension de l'importance du type des clefs primaire


    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
    Images attachées Images attachées  

  8. #8
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    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
    Images attachées Images attachées  

Discussions similaires

  1. [SGBDR] une BDD Simple à transporter/ sans install.
    Par Manopower dans le forum Bases de données
    Réponses: 6
    Dernier message: 06/10/2005, 16h53
  2. [Sessions] Transport d'une variable....
    Par Kotik dans le forum Langage
    Réponses: 6
    Dernier message: 04/10/2005, 11h11
  3. [ADO] Problème avec MoveLast et compagnie
    Par Odulo dans le forum Access
    Réponses: 2
    Dernier message: 28/09/2005, 09h27
  4. Réponses: 5
    Dernier message: 05/07/2005, 16h58
  5. JOnAS, JBoss vs Websphere et compagnie..
    Par kaishef dans le forum Wildfly/JBoss
    Réponses: 9
    Dernier message: 18/05/2005, 17h57

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