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 :

MCD gestion de la vente de moto verification des relation et cardinalité


Sujet :

Schéma

  1. #1
    Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2015
    Messages : 9
    Points : 3
    Points
    3
    Par défaut MCD gestion de la vente de moto verification des relation et cardinalité
    Bonjours à tous, suis entre de préparer un travail de fin de cycle qui porte sur la création d'un logiciel de gestion de la vente des moto dans un magasin.
    je voulais juste m'assurez si j'ai bien fait mon mcd pour passer à l’étape qui suit; voici en annexe les réglés de gestion et le mcd :

    Règles de gestion du MCD
    - Un Client passe une ou plusieurs commandes.
    - Une commande est passée par un et un seul client.
    - Une commande concerne un ou plusieurs articles à une quantité donnée.
    - Une facture concerne un ou plusieurs articles à une date donnée.
    - Un article peut être concerné par une ou plusieurs commandes.
    - Un utilisateur établit une ou plusieurs Facture.
    - Une facture est établie par un et un seul utilisateur.
    voici en annexe le MCD
    Nom : mcd vente moto.JPG
Affichages : 28461
Taille : 47,2 Ko

    NB: la quantité commander est identique à la quantité qui est facturé sauf que la commande peut être faite aujourd’hui, mais la facture une autre jour.
    est la sortie de la marchandise du stock est conditionner par une facture.
    merci à tous ,j'attends vos remarques, vos idées et vos conseille.

  2. #2
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    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 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Bonsoir jrmpp,


    Selon votre MCD, une facture peut concerner plusieurs commandes.

    Soit cde1 et cde2 ces commandes. Elles peuvent concerner des clients différents, par exemple la commande cde1 concerne le client cli1 tandis que la commande cde2 concerne le client cli2.

    Donc si la facture f1 fait référence à ces deux commandes cde1 et cde2, en toute logique cette facture concerne les clients cl1 et cl2...

    L’association CONCERNER est ternaire, et du fait des 3 cardinalités <1,n>, par définition l’identifiant de cette association est le triplet {Numfact, Codeart, Numcom}.

    Selon le MCD, ce qui suit est donc légal :

    CLIENT {Numcl, ...} 
            cli1                
            cli2  
    
    COMMANDE {Numcom, Numcl}    ARTICLE {Codeart, ...}    FACTURE {Numfact, ...}
              cde1    cli1               a1                        f1
              cde2    cli2 
    
    CONCERNER {Numfact, Codeart, Numcom, Qtecom} 
               f1       a1       cde1    q1
               f1       a1       cde2    q2
    
    C’est-à-dire que la facture f1 concerne effectivement à la fois les deux clients cli1 et cli2, ce que vous ne souhaitez vraisemblablement pas...
    (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.

  3. #3
    Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2015
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Bonsoir jrmpp,


    Selon votre MCD, une facture peut concerner plusieurs commandes.

    Soit cde1 et cde2 ces commandes. Elles peuvent concerner des clients différents, par exemple la commande cde1 concerne le client cli1 tandis que la commande cde2 concerne le client cli2.

    Donc si la facture f1 fait référence à ces deux commandes cde1 et cde2, en toute logique cette facture concerne les clients cl1 et cl2...

    L’association CONCERNER est ternaire, et du fait des 3 cardinalités <1,n>, par définition l’identifiant de cette association est le triplet {Numfact, Codeart, Numcom}.

    Selon le MCD, ce qui suit est donc légal :

    CLIENT {Numcl, ...} 
            cli1                
            cli2  
    
    COMMANDE {Numcom, Numcl}    ARTICLE {Codeart, ...}    FACTURE {Numfact, ...}
              cde1    cli1               a1                        f1
              cde2    cli2 
    
    CONCERNER {Numfact, Codeart, Numcom, Qtecom} 
               f1       a1       cde1    q1
               f1       a1       cde2    q2
      
    
    C’est-à-dire que la facture f1 concerne effectivement à la fois les deux clients cli1 et cli2, ce que vous ne souhaitez vraisemblablement pas...
    [pre]

    Bonjour fsmrel

    Merci pour vos Conseils effectivement c'est cette relation entre facture et commande qui me compliquer,
    j'ai essayer de faire certaine modification au sein de mon MCD :

    effectivement l’idée est que une facture sois associé à une commande et non une facture associé à plusieurs commande.
     
    Commande{Numcom,Numcl}  
             Cde1    Cl1               
             Cde2    Cl2               
             Cde3    Cl3               
    
    CONTENIR{Numcom, Codeart,Qtecom}
               Cde1     a1     q1
               Cde2     a1     q2
               Cde3     a1     q3
    
    CONCERNER{Numfact,Numcom} 
                f1      Cde1        
                f2      Cde2         
                f3      Cde3
    
    Sauf que une commande peut contenir plusieurs article.
    Une facture concerne une seule commande.
    Voici le MCD modifier en annexe :

    Nom : mcd ameliorer.JPG
Affichages : 10066
Taille : 50,4 Ko

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 912
    Points
    38 912
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Que se passe-t-il si la livraison n'est pas conforme à la commande, par exemple s'il manque certains articles, vous facturez tout de même au titre de la commande ?

    Habituellement, la facture se rapporte à la ou les livraisons faites pour la commande

    Et pour pouvoir rapprocher les factures des commandes, le modèle classique est d'avoir des lignes de commande d'une part et des lignes de facture d'autre part

    COMMANDE 1,n --- contenir --- (1,1) LIGNE_CDE 1,1 --- concerner --- 0,n ARTICLE

    FACTURE 1,n --- inclure --- (1,1) LIGNE_FAC

    Les lignes étant des entité-type faibles, on les identifie relativement à leur entité-type forte, c'est ce que matérialisent les parenthèses sur les cardinalités.

  5. #5
    Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2015
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    Bonjour,

    Que se passe-t-il si la livraison n'est pas conforme à la commande, par exemple s'il manque certains articles, vous facturez tout de même au titre de la commande ?

    Habituellement, la facture se rapporte à la ou les livraisons faites pour la commande

    Et pour pouvoir rapprocher les factures des commandes, le modèle classique est d'avoir des lignes de commande d'une part et des lignes de facture d'autre part

    COMMANDE 1,n --- contenir --- (1,1) LIGNE_CDE 1,1 --- concerner --- 0,n ARTICLE

    FACTURE 1,n --- inclure --- (1,1) LIGNE_FAC

    Les lignes étant des entité-type faibles, on les identifie relativement à leur entité-type forte, c'est ce que matérialisent les parenthèses sur les cardinalités.
    Merci pour votre réflexion sauf que (la livraison n'est pas être conforme à la commande) cela dépend de chaque entreprise ou magasin.
    prénom un exemple typique un client se présente dans un magasin, l'article commander n'est pas en stock automatique la commande est annulé(le client avant de passer sa commande doit s'assurer que la marchandise existe).

    Pour les lignes commandes et les lignes factures, j'ai vu cette représentation dans beaucoup des MCD sauf que je ne
    comprends pas très bien le sens de cette relation(COMMANDE 1,n --- contenir --- (1,1) LIGNE_CDE 1,1 --- concerner --- 0,n ARTICLE),du faite que selon la règle du passage du MCD au MLD :

    Une association de type N :N (c’est à dire qui a les cardinalités maximales positionnées à « N » des 2 côtés de l’association) se traduit par la création d’une table dont la clé primaire est composée des clés étrangères référençant les relations correspondant aux entités liées par l’association.

    d’où avec Mon MCD Modifier je devrais déjà avoir ça comme MLD si je ne me trompe pas :

    Nom : MLD.JPG
Affichages : 9080
Taille : 48,2 Ko

    je ne sais pas si je suis dans le bon, merci quand même.

  6. #6
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    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 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Bonsoir,

    A propos de l’identification des entités-types

    Je cite Yves Tabourier qui écrit à la page 80 de son remarquable ouvrage (De l’autre côté de MERISE, Les Éditions d’organisation, 1986), ce qui constitue une règle d’or valant pour les identifiants des entités-types florissant dans les MCD merisiens (règle d’or trop souvent méconnue, hélas ! Et comme disent Goethe et Cie, « ceux qui ont oublié le passé sont condamnés à le revivre... ») :

    « ... la fonction d’une propriété est de décrire les objets (et les rencontres), alors que l’identifiant ne décrit rien. Son rôle fondamental est d’être sûr de distinguer deux jumeaux parfaits, malgré des descriptions identiques.
    L’expérience montre d’ailleurs que l’usage des “identifiants significatifs” (ou “codes significatifs”) a pu provoquer des dégâts tellement coûteux que la sagesse est d’éviter avec le plus grand soin de construire des identifiants décrivant les objets ou, pis encore, leurs liens avec d’autres objets... »

    Parce qu’il est au niveau conceptuel Merise, Tabourier parle d’identifiants, et ceux-ci ne doivent pas être porteurs d’information mais il suffit ensuite, au niveau SQL, de transcrire identifiant par clé, la règle reste valable, sinon plus ! En passant, on notera qu’une clé primaire n’accepte pas d’être polluée par le bonhomme Null, pour des raisons évidentes.

    Après avoir passé plus de 45 ans à mettre en oeuvre, audité, réparé des wagons de bases de données, je confirme que Tabourier a totalement raison : j’ai vu des applications opérationnelles partir à la poubelle ne serait-ce que pour l’emploi d’identifiants significatifs. En passant, je vous renvoie à une histoire vécue, où les concepteurs ont compris le message et revu sagement leur MCD.

    Vous me direz qu’un numéro de commande ou de facture ça ne change pas, mais quid si le législateur se mêlait de normer et nous imposer les choses ?

    Pour ma part, je modélise l’entité-type COMMANDE en la dotant d’un identifiant non porteur d’information et donc invariant. Le numéro de commande fait alors l’objet d’un identifiant alternatif, point d’entrée dans le système, respectant la contrainte d’unicité des numéros de commande, et au stade SQL localisé dans la seule table COMMANDE, tandis que l’identifiant non porteur d’information donne lieu à la clé primaire de la table et peut se retrouver en tant que clé étrangère (foreign key) dans d’autres tables (CONCERNER par exemple).

    Je verrais donc plutôt votre base de données ainsi :

     
    CREATE TABLE CLIENT 
    (
            CliId          INTEGER       NOT NULL
          , Numcl          INTEGER       NOT NULL
          , ...
        , CONSTRAINT CLIENT_PK PRIMARY KEY (CliId) 
        , CONSTRAINT CLIENT_AK UNIQUE (Numcl)
    ) ;
    
    CREATE TABLE ARTICLE 
    (
            ArtId          INTEGER       NOT NULL
          , Codeart        INTEGER       NOT NULL
          , ...
        , CONSTRAINT ARTICLE_PK PRIMARY KEY (ArtId) 
        , CONSTRAINT ARTICLE_AK UNIQUE (Codeart)
    ) ;
    
    CREATE TABLE COMMANDE 
    (
            ComId          INTEGER       NOT NULL
          , Numcom         INTEGER       NOT NULL
          , Datecom        DATE          NOT NULL
          , CliId          INTEGER       NOT NULL
        , CONSTRAINT COMMANDE_PK PRIMARY KEY (ComId) 
        , CONSTRAINT COMMANDE_AK UNIQUE (Numcom)
        , CONSTRAINT COMMANDE_CLIENT_FK FOREIGN KEY (CliId)
              REFERENCES CLIENT
    ) ;
    
    CREATE TABLE CONTENIR
    (
            ComId          INTEGER       NOT NULL
          , ArtId          INTEGER       NOT NULL
          , Qtecom         INTEGER       NOT NULL
        , CONSTRAINT CONTENIR_PK PRIMARY KEY (ComId, ArtId) 
        , CONSTRAINT CONTENIR_COMMANDE_FK FOREIGN KEY (ComId)
              REFERENCES COMMANDE 
              ON DELETE CASCADE
        , CONSTRAINT CONTENIR_ARTICLE_FK FOREIGN KEY (ArtId)
              REFERENCES ARTICLE
    ) ;
    

    Citation Envoyé par jrmpp
    je ne comprends pas très bien le sens de cette relation (COMMANDE 1,n --- contenir --- (1,1) LIGNE_CDE 1,1 --- concerner --- 0,n ARTICLE)
    Vous avez produit la table CONCERNER (renommée en LIGNE_CDE) par dérivation de l’association CONCERNER, ce qui est bien entendu tout à fait correct.

    De son côté, l’ami escartefigue a considéré que la ligne de commande était une propriété multivaluée de la commande, d’où la mise en oeuvre d’une entité-type faible (weak entity type) LIGNE_CDE. Dans cette approche, il est d’usage en Merise d’identifier l’entité-type faible relativement à l’entité-type forte (regular entity type) : il y a effectivement plus d’une façon de modéliser les lignes de commande, mais en l’occurrence la vôtre est la plus naturelle.

    Cela dit, reste le lettrage, c’est-à-dire rapprocher les lignes de facture et les lignes de commande, mais en prouvant que l’on ne pourra pas rapprocher les lignes de commande d’un client avec les lignes de facture d’un autre client, et cette fois-ci l’identification relative à CLIENT rendra bien service...


    A suivre.
    (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.

  7. #7
    Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2015
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Merci pour vos conseils, j'ai beaucoup appris et modifier mon MCD avec cette notion d'identifiant relative le voici :

    Nom : mcd modifier verifier.JPG
Affichages : 8571
Taille : 63,5 Ko

    et si je transformer par exemple l'objet facture en une relation en disant par exemple: Un utilisateur Facture une ou plusieurs commande et une commande est facturer par un et un seul utilisateur es ce logique?

  8. #8
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    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 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Bonsoir,


    Citation Envoyé par jrmpp
    et si je transforme par exemple l'objet facture en une relation
    La transformation est possible, mais quel sort réservez-vous alors aux lignes de facture quant à leur modélisation ?
    (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.

  9. #9
    Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2015
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Bonsoir,




    La transformation est possible, mais quel sort réservez-vous alors aux lignes de facture quant à leur modélisation ?
    Bonsoir, je voudrais savoir si mon MCD est maintenant correct par rapport au modification apporter.

  10. #10
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 912
    Points
    38 912
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Ce qui ne va pas, c'est que la commande est en relation avec une et une seule ligne de facture, mais avec plusieurs articles, par transitivité, une ligne de facture concernerait plusieurs articles...
    A corriger, chaque article doit pouvoir avoir un code TVA différent, un prix unitaire différent... d'où le besoin d'une ligne de facture par article de la commande

    J'ai bien noté l'annulation de commande en cas d'article non dispo, mais, dans la vraie vie, il arrive parfois que l'article réputé dispo ne le soit pas au moment où le préparateur de commande va chercher l'article en magasin (écart entre stock théorique et stock physique). Du coup, il me semble sage de prévoir ce cas et de ne facturer que ce qui est livré (ou emporté par le client) et non pas ce qui est commandé

  11. #11
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    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 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Bonsoir,


    Citation Envoyé par jrmpp
    je voudrais savoir si mon MCD est maintenant correct par rapport au modification apporter.
    Indépendamment des observations pertinentes d’Escartefigue, j’observe que vous n’avez pas répondu à ma question qui était la suivante en relation avec votre souhait de faire de FACTURE une association entre UTILISATEUR et COMMANDE :

    « quel sort réservez-vous alors aux lignes de facture quant à leur modélisation ? »

    Merisement parlant, faire de FACTURE une association entre UTILISATEUR et COMMANDE a pour conséquence que l’association entre FACTURE et LIGNE_FACTURE est une association avec une association (en l’occurrence FACTURE), ce qui n’est pas possible. Donc il faut que FACTURE reste une entité-type.

    Pour en revenir au lettrage, LIGNE_FACTURE est à associer à LIGNE_COMMANDE, avec une règle de gestion du genre (cardinalités à adapter à votre univers) : une ligne de commande est lettrée par une ou plusieurs lignes de facture, et une ligne facture est lettrée par une ou plusieurs lignes de commande.

    Toujours en vertu du dogme merisien selon lequel une association n’est possible qu’entre entités-types, le lettrage a pour conséquence que l’association CONCERNER (alias LIGNE_COMMANDE) doit être transformée en entité-type... Ainsi les observations d’Escartefigue et les miennes vont dans le même sens, et dans son état actuel, votre MCD ne convient pas.
    (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.

  12. #12
    Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2015
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Bonsoir,




    Indépendamment des observations pertinentes d’Escartefigue, j’observe que vous n’avez pas répondu à ma question qui était la suivante en relation avec votre souhait de faire de FACTURE une association entre UTILISATEUR et COMMANDE :

    « quel sort réservez-vous alors aux lignes de facture quant à leur modélisation ? »

    Merisement parlant, faire de FACTURE une association entre UTILISATEUR et COMMANDE a pour conséquence que l’association entre FACTURE et LIGNE_FACTURE est une association avec une association (en l’occurrence FACTURE), ce qui n’est pas possible. Donc il faut que FACTURE reste une entité-type.

    Pour en revenir au lettrage, LIGNE_FACTURE est à associer à LIGNE_COMMANDE, avec une règle de gestion du genre (cardinalités à adapter à votre univers) : une ligne de commande est lettrée par une ou plusieurs lignes de facture, et une ligne facture est lettrée par une ou plusieurs lignes de commande.

    Toujours en vertu du dogme merisien selon lequel une association n’est possible qu’entre entités-types, le lettrage a pour conséquence que l’association CONCERNER (alias LIGNE_COMMANDE) doit être transformée en entité-type... Ainsi les observations d’Escartefigue et les miennes vont dans le même sens, et dans son état actuel, votre MCD ne convient pas.
    Bonjour fsmrel, Bonjour escartefigue merci pour vos conseils.
    Donc si je suis votre logique en ajoutant livraison et ligne livraison je devrais avoir ça comme MCD:
    Nom : mcd modifier the best.JPG
Affichages : 7687
Taille : 53,6 Ko

    merci de bien vouloir me faire savoir si les identifiants entre commande---ligne commande---ligne livraison---ligne facture----facture sont bien placées

  13. #13
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 912
    Points
    38 912
    Billets dans le blog
    9
    Par défaut
    bonjour,

    C'est beaucoup mieux

    A vérifier : votre MCD autorise une facture pour plusieurs livraisons, ça n'a rien d'anormal a priori mais est-ce bien ce qui est souhaité


    Quant à cette question
    Citation Envoyé par jrmpp Voir le message
    merci de bien vouloir me faire savoir si les identifiants entre commande---ligne commande---ligne livraison---ligne facture----facture sont bien placées
    S'il s'agit de la mise en exergue de l'identification relative, alors la réponse est oui, sinon je n'ai pas compris la question

    Edit : la cardinalité mini de 1 de UTILISATEUR vers FACTURE est suspecte, elle implique que l'utilisateur n'existe que s'il a établi au moins une facture.

  14. #14
    Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2015
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    bonjour,

    C'est beaucoup mieux

    A vérifier : votre MCD autorise une facture pour plusieurs livraisons, ça n'a rien d'anormal a priori mais est-ce bien ce qui est souhaité
    Quant à cette question
    S'il s'agit de la mise en exergue de l'identification relative, alors la réponse est oui, sinon je n'ai pas compris la question
    merci escartefigue, il s'agit bien de la mise en exergue de l'identification relative, déjà votre réponse me soulage.

    il est vrai qu'une facture peut faire l'objet de plusieurs livraisons si est seulement si une partie de la facture est livrée dans une autre succursale d'une mémé société ou une partie de facture est livrée aujourd’hui et l'autre partie demain, mais pour mon cas, une facture fait l'objet d'une livraison.


    Edit : la cardinalité mini de 1 de UTILISATEUR vers FACTURE est suspecte, elle implique que l'utilisateur n'existe que s'il a établi au moins une facture.
    si tel est le cas, je vais revoir cette cardinalité minimal à 0.

  15. #15
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    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 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Bonsoir,

    Je dirais comme escartefigue...

    Par ailleurs, un des buts de la manoeuvre est d’avoir l’assurance que le client qui est facturé est bien celui qui a passé la commande et pas un autre. Pour cela et pour éviter par la suite la mise en oeuvre de triggers, au stade MLD la table LIGNE_FACTURE devrait comporter un attribut CliId participant non seulement à la clé étrangère référençant la table FACTURE, mais aussi à la clé étrangère référençant LIGNE_LIVRAISON. Dans l’état de votre MCD (qui au demeurant devient plutôt sympathique), on ne pourra pas y parvenir, donc nécessité de la mise en oeuvre d’un trigger au stade SQL... Pour éviter cela, il faudrait associer CLIENT et LIVRAISON (avec identification relative) ou utiliser l’identification relative pour l’association Correpondre1.

    A suivre, courage !
    (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.

  16. #16
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    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 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Bonsoir,

    Citation Envoyé par jrmpp Voir le message
    pour mon cas, une facture fait l'objet d'une livraison.
    Je suppose qu’une livraison correspond aussi à une seule facture. Qu’en est-il ? S’il en est bien ainsi, les entités-types LIVRAISON et FACTURE peuvent ne faire qu’une, disons FACTURE.

    Au stade SQL, quel SGBD utiliserez-vous ?
    (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.

  17. #17
    Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2015
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Bonsoir,



    Je suppose qu’une livraison correspond aussi à une seule facture. Qu’en est-il ? S’il en est bien ainsi, les entités-types LIVRAISON et FACTURE peuvent ne faire qu’une, disons FACTURE.

    Au stade SQL, quel SGBD utiliserez-vous ?
    effectivement une livraison correspond à une facture et j’utilise SQL serveur 2012.

  18. #18
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    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 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Bonsoir,


    Citation Envoyé par jrmpp Voir le message
    effectivement une livraison correspond à une facture.
    L’entité-type LIVRAISON peut donc être absorbée par l’entité-type FACTURE.

    En l’occurrence, un MLD possible :



    S’il y avait bijection entre LIGNE_COMMANDE et LIGNE_FACTURE, on pourrait en plus déclarer {CliId, CdeId, ArtId} comme clé candidate de LIGNE_FACTURE.
    (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.

  19. #19
    Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2015
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Bonsoir fsmrel,
    merci pour le MLD , je voulais juste savoir si vous utilisez quel logiciel pour la modélisation.
    MCD,MLD,MPD ..etc

  20. #20
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    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 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par jrmpp
    je voulais juste savoir si vous utilisez quel logiciel pour la modélisation.
    MCD, MLD, MPD etc.
    Pour les MCD, selon mon humeur, j’utilise DB-MAIN (libre) ou PowerAMC (pas libre), ou encore Open ModelSphere (libre), voire JMerise (une poignée d’euros) pour des cas très simples. Pour les MLD et MPD, c’est encore DB-MAIN, PowerAMC, mais aussi MySQL Workbench (libre), mais pas Open ModelSphere (je n’ai pas tout compris quant à sa façon de générer), et surtout pas JMerise, pour l'instant trop à côté de la plaque (résultats folkloriques, erronés, inexploitables).

    En tout cas, je dois 9 fois sur 10 bricoler les MLD, car si l’on part du niveau MCD, les outils sont calés sur Merise qui comporte quand même quelques lacunes et quelques règles trop tatillonnes bridant sa puissance.
    (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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. MCD Gestion des périodes de vente d'un article
    Par Architecture dans le forum Schéma
    Réponses: 1
    Dernier message: 13/02/2009, 23h36
  2. [MCD] Gestion d'acces a des applications
    Par Tibler dans le forum Schéma
    Réponses: 12
    Dernier message: 25/04/2006, 18h10
  3. [MCD] [MCD] Gestion des dates
    Par brionne dans le forum Schéma
    Réponses: 3
    Dernier message: 30/05/2003, 13h01
  4. [BEST_PRACTICE][Merise] MCD & gestion de date
    Par Seb7 dans le forum Schéma
    Réponses: 4
    Dernier message: 16/04/2003, 17h07

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