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 :

Gestion Commerciale [validation]


Sujet :

Schéma

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 12
    Points : 12
    Points
    12
    Par défaut Gestion Commerciale [validation]
    Bonsoir
    Je suis entrain de developper une application gestion commerciale, au niveau de conception j'ai realisé un mcd qui manque une validation.Donc merci de vous poster vos remarques .


  2. #2
    Membre habitué Avatar de chewing-gum
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2009
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2009
    Messages : 105
    Points : 137
    Points
    137
    Par défaut
    Bonjour,

    premier problème concernant les associations "facturer", "livrer" et "passer" entre les entités "CLIENT" et "COMMANDE". Les cardinalités ne me semblent pas correctes.
    En effet, une commande est bien passée par un et un seul client.
    Mais si tu utilises les cardinalités 1,1 pour la facture et la livraison, cela signifie que le client est livré et facturé au même moment que lorsqu'il passe une commande ! Ce qui est impossible.
    En suivant l'ordre chronologique des évènements de gestion, on se rend compte que le client passe d'abord une commande. Puis, la facture est émise par l'entreprise. Enfin, la commande est livrée.

    Solution : tu dois changer les cardinalités de l'association "facturer" et "livrer", et mettre 0,1 au lieu de 1,1.

    ------------------

    Le "type client", qui est actuellement une propriété, devrait être une entité :
    TYPE_CLIENT(id_client, libellé_client)
    De même pour la propriété "sexe client".

    A quoi correspond la propriété "nom société" de l'entité "CLIENT" ?
    S'il s'agit de la même propriété "nom société" contenue dans l'entité "Info_Société", alors l'information est redondante.

    ------------------

    Je ne m'y connais pas vraiment en code barres, mais je dirais que c'est le code barres qui identifie l'article. A une condition : que le code barre soit unique et stable dans le temps.

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    Merci monsieur chewing de votre reponse ;

    Citation Envoyé par chewing-gum Voir le message
    Bonjour,

    premier problème concernant les associations "facturer", "livrer" et "passer" entre les entités "CLIENT" et "COMMANDE". Les cardinalités ne me semblent pas correctes.
    En effet, une commande est bien passée par un et un seul client.
    Mais si tu utilises les cardinalités 1,1 pour la facture et la livraison, cela signifie que le client est livré et facturé au même moment que lorsqu'il passe une commande ! Ce qui est impossible.
    En suivant l'ordre chronologique des évènements de gestion, on se rend compte que le client passe d'abord une commande. Puis, la facture est émise par l'entreprise. Enfin, la commande est livrée.

    Solution : tu dois changer les cardinalités de l'association "facturer" et "livrer", et mettre 0,1 au lieu de 1,1.
    oui vous avez raison que une commande peut être annuler cela conclut que la commande ne peut etre pas livrer ou facturer
    ------------------

    Le "type client", qui est actuellement une propriété, devrait être une entité :
    TYPE_CLIENT(id_client, libellé_client)
    De même pour la propriété "sexe client".
    oui on peut sortir la prorieté sexe et type et les transformer en entité

    A quoi correspond la propriété "nom société" de l'entité "CLIENT" ?
    S'il s'agit de la même propriété "nom société" contenue dans l'entité "Info_Société", alors l'information est redondante.
    infor sociéte concerné les informations de la socité qui utilisera ce system

    ------------------
    Je ne m'y connais pas vraiment en code barres, mais je dirais que c'est le code barres qui identifie l'article. A une condition : que le code barre soit unique et stable dans le temps.
    un article peut se livrer par plusieurs fornisseur, sera implique que le prix d'achat d'un seul article peut se varier selon le fournisseur . donc j ai mit l'entité code bar pour connaitre premièrement le fournisseur de ce article contenant le code bar et deuxièmement si un retour est possible je peut connaitre facilement le prix d'achat de cet article

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    566
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2009
    Messages : 566
    Points : 1 045
    Points
    1 045
    Par défaut
    Bonjour,

    Au passage, quelques remarques :

    L'entité Fournisseur et l'entité Client sont identiques pour de nombreux attributs. Il serait peut être préférable de faire une entité Identification, puis de procéder par héritage pour distinguer les fournisseurs et les clients. Tu peux t'aider avec cette discussion http://www.developpez.net/forums/d77...n-commerciale/

    Votre approche de l'entité Commande suppose qu'une commande est livrée en une seule fois. C'est possible, mais il peut y avoir des exceptions.

    L'entité Devis me semble bien seule, il doit pouvoir passer en commande ou devenir sans objet.

    Malgré ton explication, je comprends pas très bien l'utilité de l'entité Info_société et sa liaison avec l'entité Compte_bancaire.

    En clair, je pense que l'analyse préalable à la construction du MCD est insuffisante. Il faut dans un premier temps fixer les règles de gestion, puis concevoir le MCD. Or, dans votre cas, il existe une approche qui vous conduira vers des difficultés voire des impossibilités pour mettre en œuvre votre base de données.

    N'oublies pas de regarder, dans ce forum, les discussions qui ont déjà traité ce sujet qui est récurrent.

    En général, pour que nous puissions vous aider, il faut présenter, en appui de votre MCD les règles de gestion.

    Ne pas oublier d'indiquer la base de données utilisée, cela permet de mieux comprendre vos choix.

    Bon courage pour la suite.

  5. #5
    Membre chevronné
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2007
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2007
    Messages : 797
    Points : 2 060
    Points
    2 060
    Par défaut
    Bonjour,

    Citation Envoyé par chewing-gum Voir le message
    En effet, une commande est bien passée par un et un seul client.
    Mais si tu utilises les cardinalités 1,1 pour la facture et la livraison, cela signifie que le client est livré et facturé au même moment que lorsqu'il passe une commande ! Ce qui est impossible.
    En suivant l'ordre chronologique des évènements de gestion, on se rend compte que le client passe d'abord une commande. Puis, la facture est émise par l'entreprise. Enfin, la commande est livrée.
    Cette réflexion mérite qu'on s'y attarde un peu.

    En effet, ces questions de chronologies sont fréquemment sources d'erreurs de modélisation. Il n'y a pas d'ordre chronologique dans un MCD. Une association ne peut pas être chronologiquement antérieure ou postérieure à une autre (sauf dans de rares cas, en relation avec les contraintes sémantiques). La chronologie, c'est l'affaire des modèles dynamiques du S.I. (pour Merise : MCT, MOT, etc.) Le MCD, lui, fait partie des modèles statiques où le temps est un invariant.

    Les 3 associations dont il est question sont incorrectes mais pour une autre raison que je développe ci-dessous

    Ce qu'on peut dire du MCD de omarito15, c'est qu'une Commande est :
    - passée par un Client
    - livrée à un Client
    - facturée à un Client

    A cause de la modélisation des 3 associations, rien n'interdit que ces 3 clients puissent être différents.
    Exemple : La commande 1 est passée par le client A, elle est livrée au client B et facturée au client C. Résultat : 3 clients mécontents .

    Cette erreur trouve son origine dans la confusion (ou le mélange) que l'on peut faire entre les aspects statique et dynamique du Système d'Information. Merise veut que l'on sépare sans aucune ambiguïté ces deux aspects. Ici, omarito15 est malheureusement "tombé dans le panneau" (qu'il ne m'en veuille pas, il n'est pas le premier).

    Si l'on s'en tient aux entité modélisées, les actions "passer", "livrer" et "facturer" sont des états successifs de la commande ; on retrouve ici la chronologie évoquée plus haut. Ces états entrent dans la modélisation dynamique (MCT, MOT, cycle de vie, etc.) mais pas dans les modèles statiques.

    Une modélisation correcte serait la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
                    [Date]
                       |
                      1,n
                       |
                       |
    [État]--0,n----(Chrono)----1,n--[Commande]--1,1----(CIF)----0,n->[Client]
    
    Légende :
    -------------
    [ENTITE]
    (ASSOCIATION)
    ( ) = CIF
    Une Commande est liée à 1 et 1 seul Client.
    La commande passe par plusieurs états au cours de son cycle de vie, dont les états "passée", "livrée", "facturée".
    N'oubliez pas de consulter les Cours Merise et la F.A.Q. Merise
    _______________________________________________________

    Les Règles du Club Developpez.com
    Vous avez votre réponse ? Merci de cliquer sur

  6. #6
    Membre habitué Avatar de chewing-gum
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2009
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2009
    Messages : 105
    Points : 137
    Points
    137
    Par défaut
    Citation Envoyé par JPhi33 Voir le message
    Il n'y a pas d'ordre chronologique dans un MCD.
    Je trouve que c'est un peu vite dit.

    Regardons votre modèle : différents états de la commande se succèdent à des dates différentes. Parler d'une entité "Date", c'est tout simplement admettre qu'il y a une chronologie, notamment au niveau des états de la commande.

    Bien sûr, un modèle conceptuel de données n'est pas spécialement fondé sur "l'ordre chronologique", et je ne remets pas en question le fait que c'est un modèle statique.

  7. #7
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut Ô tempora, ô mores....
    Bonsoir les amis,


    Permettez-moi de participer à la joyeuse ronde...


    Citation Envoyé par JPhi33 Voir le message
    Une modélisation correcte serait la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
                    [Date]
                       |
                      1,n
                       |
                       |
    [État]--0,n----(Chrono)----1,n--[Commande]--1,1----(CIF)----0,n->[Client]
    
    Légende :
    -------------
    [ENTITE]
    (ASSOCIATION)
    ( ) = CIF
    Comme nous ne sommes pas dans un univers quantique (si tant est que le temps y ait une signification qui soit la nôtre), je verrais volontiers la mise œuvre d’une CIF de telle sorte qu’au même moment une commande ne puisse pas se trouver dans deux états différents :
    COMMANDE X DATE ETAT
    Et tant qu’à faire, une deuxième CIF serait la bienvenue :
    COMMANDE X ETAT DATE

    D’où la partie correspondante du MCD (Power AMC + pointes de flèches à la main) :
    Et du MLD ("pk" est l'abréviation de primary key, "ak" celle de alternate key et "fk" celle de foreign key) :

    J’anticipe, mais sachant par ailleurs que (toujours cette p... d'histoire d’univers non quantique), si les états doivent se succéder selon un ordre précis pour une commande (exemple : "passée" avant "livrée"), il sera prudent, le moment venu, de mettre en œuvre un trigger ad-hoc (évitons de contrôler ce genre de choses dans les applications).
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  8. #8
    Membre chevronné
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2007
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2007
    Messages : 797
    Points : 2 060
    Points
    2 060
    Par défaut
    Bonjour à tous,

    Citation Envoyé par chewing-gum Voir le message
    Citation Envoyé par JPhi33
    Il n'y a pas d'ordre chronologique dans un MCD.
    Je trouve que c'est un peu vite dit.
    Effectivement, j'aurais du écrire :
    Il n'y a pas d'ordre chronologique entre associations dans un MCD.

    Je pensais que ce serait suffisamment clair étant donné que la phrase suivante était
    Citation Envoyé par JPhi33
    Une association ne peut pas être chronologiquement antérieure ou postérieure à une autre.


    Citation Envoyé par fsmrel
    Et tant qu’à faire, une deuxième CIF serait la bienvenue :

    COMMANDE X ETAT → DATE
    Nous ne sommes pas non plus dans un monde idéal
    Cette CIF suppose qu'une commande ne passe jamais plus d'une fois par le même état. Or, l'expérience (en tout cas la mienne) montre que ce n'est pas toujours le cas. Les processus de gestion n'étant des vérités scientifiques, les gestionnaires demandent de prévoir qu'un objet de gestion puisse passer par le même état plusieurs fois au cours de son cycle de vie.

    Ce qui devrait conduire à cette modélisation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
                    [Etat]
                       ^
                       |
                      0,n
                       |
                     (CIF)
                       |
                      1,1
                       |
    [Date]--0,n----(Chrono)----1,n--[Commande]
    qui aboutit au même MLD/MR que celui de fsmrel, amputé de la clé alternative {CommandeId, EtatId} (seule la clé disparait, les attributs restent).
    N'oubliez pas de consulter les Cours Merise et la F.A.Q. Merise
    _______________________________________________________

    Les Règles du Club Developpez.com
    Vous avez votre réponse ? Merci de cliquer sur

  9. #9
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonsoir,


    Citation Envoyé par JPhi33 Voir le message
    Cette CIF suppose qu'une commande ne passe jamais plus d'une fois par le même état. Or, l'expérience (en tout cas la mienne) montre que ce n'est pas toujours le cas
    Nous sommes bien d'accord. Mais dans le cas présent, cette CIF est là pour montrer comment prendre en compte stricto sensu les trois associations-types mettant en relation les entités-types CLIENT et COMMANDE (omarito choisira de respecter ou non ce qu’il a modélisé initialement).


    @ omarito

    Bien que ce ne soit pas une obligation, vous pouvez vous frotter à la généralisation car les entités-types FOURNISSEUR et CLIENT partagent bien des propriétés communes. A ce sujet, voyez par exemple la discussion avec Heledir (sujet : gestion commerciale, où l’on retrouve du reste une variante simplifiée (pas de chronologie) concernant l’état de la commande...)

    Open ModelSphere ne propose pas de représentation ad-hoc pour les MCD merisiens (il ne le fait que pour les diagrammes de classes uéméliens), mais vous pouvez procéder par simulation de l'héritage, comme ici.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

Discussions similaires

  1. Quelle solution (langage, EDI et SGBD) choisir pour un syst de gestion commerciale ?
    Par jkamelini dans le forum Langages de programmation
    Réponses: 8
    Dernier message: 12/07/2007, 10h25
  2. Base de données Gestion commerciale
    Par skrounch dans le forum Access
    Réponses: 5
    Dernier message: 07/03/2007, 16h28
  3. [Sage] Requête update ODBC Sage gestion commerciale 100
    Par magic.goby dans le forum Autres SGBD
    Réponses: 1
    Dernier message: 13/07/2006, 18h36
  4. [impossible à prio] Accès à EBP Gestion Commerciale
    Par fifcan dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 01/09/2004, 14h02
  5. gestion de validation de ventes
    Par $grm$ dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 05/05/2004, 13h05

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