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 :

Projet d'étude gestion commerciale d'une petite entreprise


Sujet :

Schéma

  1. #1
    Futur Membre du Club
    Homme Profil pro
    echirolles
    Inscrit en
    Février 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : echirolles
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Projet d'étude gestion commerciale d'une petite entreprise
    Bonjour
    Help please !!
    Je débute en modélisation et je dois faire le MCD de la gestion commerciale d'une petite entreprise qui fabrique des analyseurs d'air et d'eau.

    L'entreprise vends des analyseurs à des clients (entreprises ou particuliers) et leur propose un contrat de maintenance.

    - Le client demande un devis que lui adresse la boite,ensuite une fois le devis(qui peut contenir un analyseur , une pièce de l'analyseur ou une maintenance de l'analyseur) accepté le client renvoi un bon de commande.
    - A son tour la boite envoie un bon de commande au fournisseur pour acheter des pièces si besoin.
    - La boite reçoit une facture du fournisseur et un bon de livraison.
    - Enfin la boite livre le matériel (si c'est un analyseur ou une pièce) ou se déplace (si c'est un contrat de maintenance ) pour dépanner avec une facture et un bon de livraison

    J'ai commencé à faire le MCD ci dessous merci de donner vos avis et commentaires
    Images attachées Images attachées  

  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 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bon début.

    Il y a évidemment quelques observations à faire, mais commençons par une 1re question :
    Un client n’a droit qu’à un seul devis ? Un même devis peut être partagé par plusieurs clients ?
    (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
    Membre du Club Avatar de csik78
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 30
    Points : 45
    Points
    45
    Par défaut
    Bonjour à vous,

    Je débute également mais il me semble qu'il n'est pas possible d'avoir quantité ton association entre article et ligne de commande car il faut les cardinalités maximum à "n", je pense qu'il serait préférable de mettre "Quantité" dans ligne de commande directement.

    Cependant peut être que j'ignore le fait que cela soit possible,

    Edit : Il me semble qu'entre article et fournisseur dans ton association comme tes cardinalités maximum sont à "n", il serait préférable d'y ajouter la notion de quantité.

    Cordialement,

    csik

  4. #4
    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 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par csik78 Voir le message
    il me semble qu'il n'est pas possible d'avoir quantité ton association entre article et ligne de commande car il faut les cardinalités maximum à "n", je pense qu'il serait préférable de mettre "Quantité" dans ligne de commande directement.
    C’est un point tout à fait secondaire, mais on peut faire une pause et en parler. C’est une remarque faite (dès la fin des années soixante-dix) notamment par nombre de ceux qui ont enseigné Merise, l’enseignent et l’enseigneront. Mais tout le monde ne partage pas forcément cette vision des choses : une association-type peut être porteuse de propriétés, point barre ; on ne va pas commencer à dire : oui, mais dans le cas des cardinalités maximales 1 on rapatrie les propriétés, sauf quand les cardinalités minimales sont à 0, etc. Conceptuellement parlant les deux positions sont acceptables.

    La FAQ Merise prend position, mais sans argumenter, sans dire pourquoi ça serait peccamineux. Je cite par ailleurs l’ouvrage de référence [1] :
    Toute relation binaire avec cardinalité 1,1 ne peut être porteuse de propriété. En effet, une telle propriété migre alors obligatoirement dans l’entité portant cette cardinalité 1,1.
    Il s’agit là d’un raisonnement circulaire qui ne prouve rien, du genre : Question : Pourquoi ? Réponse : Parce que !

    De toute façon, suite à dérivation du MCD, les AGL feront systématiquement figurer la quantité dans la table LIGNE_COMMANDE. Ainsi, pour reprendre l'exemple proposé par lilpayton, PowerAMC ne signale évidemment aucune anomalie et annonce : « 0 erreur(s), 0 avertissement(s). », tandis que dans le MLD, la propriété Quantité est rapatriée dans LIGNE_COMMANDE et Tarzan est content.

    ______________________________

    [1] Dominique Nanci, Bernard Espinasse. Ingénierie des systèmes d’information Merise Deuxième génération. Sybex 1996.
    (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.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    echirolles
    Inscrit en
    Février 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : echirolles
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Bon début.

    Il y a évidemment quelques observations à faire, mais commençons par une 1re question :
    Un client n’a droit qu’à un seul devis ? Un même devis peut être partagé par plusieurs clients ?

    Bonsoir fsmrel
    C'est vrai que je n'avais pas fait attention
    -Un client peu avoir effectivement plusieurs devis et un devis n'est pas partageable
    du coup j'ai fait une modification du MCD
    Images attachées Images attachées  

  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 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonsoir lilpayton,


    Les clients de l’entreprise font l’objet de l’entité-type CLIENT, leurs devis font l’objet de l’entité-type DEVIS et leurs commandes font l’objet de l’entité-type COMMANDE : tout va bien.

    Je fais toutefois observer qu’on ne sait pas à quel devis correspond quelle commande : si la correspondance doit être établie, alors c’est par le biais d’une association 0,1--1,1 entre DEVIS et COMMANDE, ce qui conduit évidemment à supprimer l’association entre CLIENT et COMMANDE (et ce qui suppose que toute commande fait préalablement l’objet d’un devis). Cette façon de procéder permettra par exemple de s’assurer (si c’est nécessaire) que les articles d’une commande sont cohérents avec ceux du devis correspondant.


    De la généralisation

    Les clients et les fournisseurs sont des personnes et ont en commun certaines propriétés : nom, prénom, adresse électronique, téléphone, etc. Vous pourriez étudier l’opportunité de la généralisation et de la mise en oeuvre d'un surtype PERSONNE, à partir de quelque chose comme ceci :




    Adresses

    Chaque fournisseur a exactement une adresse, mais chaque adresse fait référence à un client, donc l’adresse d’un fournisseur est nécessairement celle d’un client...
    Il faudrait remplacer :
    [CLIENT]----1,N----(POSSEDE)----1,N----[ADRESSE]
    Par
    [CLIENT]----1,N----(POSSEDE)----0,N----[ADRESSE]


    Lignes de commande

    Une ligne de commande est une propriété multivaluée d’une commande, en conséquence de quoi vous pouvez utiliser l’identification relative :
    [COMMANDE]----1,N----(Comporter)----(1,1)----LIGNE_COMMANDE]


    Quelques questions :

    Question 1 : Quel rôle jour l’entité-type TYPE_COMMANDE, quelle est sa signification ?

    Question 2 : Les factures des clients font l’objet de l’entité-type FACTURE, mais on ne voit rien quant aux lignes de facture. Sont-ce les lignes de commande qui en tiennent lieu ?

    Question 3 : Dans votre message initial, vous faites mention des fournisseurs de l’entreprise (représentés par l'entité-type FOURNISSEUR), ainsi que des bons de commande que vous leur transmettez et des factures qu’ils vous envoient en retour. Toutefois ces bons et factures ne sont pas représentés dans le MCD, est-ce voulu ?
    (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
    Futur Membre du Club
    Homme Profil pro
    echirolles
    Inscrit en
    Février 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : echirolles
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Bonsoir lilpayton,


    Les clients de l’entreprise font l’objet de l’entité-type CLIENT, leurs devis font l’objet de l’entité-type DEVIS et leurs commandes font l’objet de l’entité-type COMMANDE : tout va bien.

    Je fais toutefois observer qu’on ne sait pas à quel devis correspond quelle commande : si la correspondance doit être établie, alors c’est par le biais d’une association 0,1--1,1 entre DEVIS et COMMANDE, ce qui conduit évidemment à supprimer l’association entre CLIENT et COMMANDE (et ce qui suppose que toute commande fait préalablement l’objet d’un devis). Cette façon de procéder permettra par exemple de s’assurer (si c’est nécessaire) que les articles d’une commande sont cohérents avec ceux du devis correspondant.


    De la généralisation

    Les clients et les fournisseurs sont des personnes et ont en commun certaines propriétés : nom, prénom, adresse électronique, téléphone, etc. Vous pourriez étudier l’opportunité de la généralisation et de la mise en oeuvre d'un surtype PERSONNE, à partir de quelque chose comme ceci :




    Adresses

    Chaque fournisseur a exactement une adresse, mais chaque adresse fait référence à un client, donc l’adresse d’un fournisseur est nécessairement celle d’un client...
    Il faudrait remplacer :
    [CLIENT]----1,N----(POSSEDE)----1,N----[ADRESSE]
    Par
    [CLIENT]----1,N----(POSSEDE)----0,N----[ADRESSE]


    Lignes de commande

    Une ligne de commande est une propriété multivaluée d’une commande, en conséquence de quoi vous pouvez utiliser l’identification relative :
    [COMMANDE]----1,N----(Comporter)----(1,1)----LIGNE_COMMANDE]


    Quelques questions :

    Question 1 : Quel rôle jour l’entité-type TYPE_COMMANDE, quelle est sa signification ?

    Question 2 : Les factures des clients font l’objet de l’entité-type FACTURE, mais on ne voit rien quant aux lignes de facture. Sont-ce les lignes de commande qui en tiennent lieu ?



    Question 3 : Dans votre message initial, vous faites mention des fournisseurs de l’entreprise (représentés par l'entité-type FOURNISSEUR), ainsi que des bons de commande que vous leur transmettez et des factures qu’ils vous envoient en retour. Toutefois ces bons et factures ne sont pas représentés dans le MCD, est-ce voulu ?
    Bonjour fsmrel
    Merci beaucoup pour votre aide et de cette réponse rapide .


    Pour répondre à votre première question(1):
    Ici j'ai traduit l’entité-type TYPE_COMMANDE par le fait que la commande peut être une maintenance qui peut faire l'objet d'un devis.
    Justement j'allais vous poser la question car je ne sais pas comment le traduire .

    Reponse Q2 :
    Sur le nouveau MCD j'ai rajouter Ligne_Facture reste à savoir si c'est correcte

    Reponse Q3 :
    La boite demande que ce soit le fournisseur qui gère les bons de commandes fournisseur et factures fournisseur d'où l'absence de ces entités.

    Merci encore pour votre aide.
    Images attachées Images attachées  

  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 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonsoir lilpayton,


    Citation Envoyé par lilpayton Voir le message
    Ici j'ai traduit l’entité-type TYPE_COMMANDE par le fait que la commande peut être une maintenance qui peut faire l'objet d'un devis.
    Si une maintenance se comporte comme une commande classique, c'est-à-dire si elle fait toujours l’objet d’un devis, d’une facture (j’en sais quelque chose à propos de la maintenance de ma chaudière dont il a fallu changer des pièces...), et toutes ces sortes de choses, la mise en œuvre de l’entité-type TYPE_COMMANDE convient.


    Entité-type COMMANDE

    Par convention, l’attribut Commande_Id est artificiel (non significatif, créé par le système, en principe caché à la vue de l’utilisateur). Mais l’entreprise ne gère-t-elle pas ses propres numéros de commande que par contraste on dira naturels (à l’usage de l’utilisateur, même si vous demandez au système de les générer eux aussi) ?

    La présence d’un attribut Commande_quantite est suspecte... Que compte-t-on ?


    Entité-type LIGNE_COMMANDE

    L’attribut Ligne_commande_qte est manifestement redondant avec l’attribut Article_qte de l’association Concerner. Si tel est le cas, l’un des deux doit disparaître (au hasard Article_qte, ça fera plaisir à csik78 ).

    Le montant (attribut Ligne_commande_montant) est-il hors taxe ? Doit-il être égal au montant défini pour l’entité-type ARTICLE (à date, au cas où l'on gèrerait un historique des prix HT des articles) ?


    FACTURE

    Pas de numéro de facture ? (Mêmes remarques que pour le numéro de commande).


    Citation Envoyé par fsmrel Voir le message
    Les factures des clients font l’objet de l’entité-type FACTURE, mais on ne voit rien quant aux lignes de facture. Sont-ce les lignes de commande qui en tiennent lieu ?
    Citation Envoyé par lilpayton Voir le message
    Sur le nouveau MCD j'ai rajouter Ligne_Facture reste à savoir si c'est correcte
    L’ajout de l’entité-type LIGNE_FACTURE est a priori correct. Mais je n’ai pas formulé ma question de façon suffisamment complète... En effet, s’il doit y avoir égalité entre les lignes de facture et les lignes de commande (ce qui paraît assez sain dans notre monde cartésien !), on sait alors inférer les lignes de facture : dans ce cas-là, on peut revenir à la situation initiale et ne pas modéliser l’entité-type LIGNE_FACTURE (désolé pour ce qui ressemble à un contre-ordre..) Qu’en est-il ?


    TVA

    Prévoyez-vous de suivre la date d’application des taux de TVA, sachant par exemple que début 2014 on s’en prendra plein la g... ? A titre d’exemple :



    Au niveau SQL :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    CREATE TABLE TVA (
       TvaId                INT                  NOT NULL,
       TvADateDepuis        DATETIME             NOT NULL,
       TvaTaux              INT                  NOT NULL,
       CONSTRAINT TVA_PK PRIMARY KEY (TvaId),
       CONSTRAINT TVA_AK UNIQUE (TvaTaux)
    ) ;
     
    CREATE TABLE TVA_HISTO (
       TvaId                INT                  NOT NULL,
       TVADateDurant        DATETIME             NOT NULL,
       TVATaux              INT                  NOT NULL,
       CONSTRAINT TVA_HISTO_PK PRIMARY KEY (TvaId, TVADateDurant),
       CONSTRAINT TVA_HISTO_TVA_FK FOREIGN KEY (TvaId)
          REFERENCES TVA (TvaId)
    ) ;
     
    CREATE TABLE ARTICLE (
       ArticleId            INT                  NOT NULL,
       TvaId                INT                  NOT NULL,
       ArtReference         VARCHAR(150)         NOT NULL,
       AetDesignation       VARCHAR(150)         NOT NULL,
       ArtPrixHt            INT                  NOT NULL,
       ArtQteStock          INT                  NOT NULL,
       Constraint ARTICLE_PK PRIMARY KEY (ArticleId),
       CONSTRAINT ARTICLE_TVA_FK FOREIGN KEY (TvaId)
          REFERENCES TVA (TvaId)
    ) ;


    Mode de paiement

    Le mode de paiement pourrait faire l’objet d’une entité-type à laquelle ferait référence la facture.


    ADRESSE

    Vous pouvez éventuellement établir une association directement entre PERSONNE et ADRESSE et par conséquent supprimer les liens CLIENT - ADRESSE et FOURNISSEUR -ADRESSE. Un inconvénient toutefois : selon votre MCD, un fournisseur a seulement une adresse, alors qu’avec la modification proposée, il peut en avoir plusieurs. Toutefois, on peut assurer la contrainte au niveau SQL au moyen d’un trigger.


    J’ai encore quelques remarques à faire, mais essayons déjà de stabiliser ce qu’on vient de traiter...
    (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
    Futur Membre du Club
    Homme Profil pro
    echirolles
    Inscrit en
    Février 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : echirolles
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Bonsoir lilpayton,




    Si une maintenance se comporte comme une commande classique, c'est-à-dire si elle fait toujours l’objet d’un devis, d’une facture (j’en sais quelque chose à propos de la maintenance de ma chaudière dont il a fallu changer des pièces...), et toutes ces sortes de choses, la mise en œuvre de l’entité-type TYPE_COMMANDE convient.


    Entité-type COMMANDE

    Par convention, l’attribut Commande_Id est artificiel (non significatif, créé par le système, en principe caché à la vue de l’utilisateur). Mais l’entreprise ne gère-t-elle pas ses propres numéros de commande que par contraste on dira naturels (à l’usage de l’utilisateur, même si vous demandez au système de les générer eux aussi) ?

    La présence d’un attribut Commande_quantite est suspecte... Que compte-t-on ?


    Entité-type LIGNE_COMMANDE

    L’attribut Ligne_commande_qte est manifestement redondant avec l’attribut Article_qte de l’association Concerner. Si tel est le cas, l’un des deux doit disparaître (au hasard Article_qte, ça fera plaisir à csik78 ).

    Le montant (attribut Ligne_commande_montant) est-il hors taxe ? Doit-il être égal au montant défini pour l’entité-type ARTICLE (à date, au cas où l'on gèrerait un historique des prix HT des articles) ?


    FACTURE

    Pas de numéro de facture ? (Mêmes remarques que pour le numéro de commande).



    L’ajout de l’entité-type LIGNE_FACTURE est a priori correct. Mais je n’ai pas formulé ma question de façon suffisamment complète... En effet, s’il doit y avoir égalité entre les lignes de facture et les lignes de commande (ce qui paraît assez sain dans notre monde cartésien !), on sait alors inférer les lignes de facture : dans ce cas-là, on peut revenir à la situation initiale et ne pas modéliser l’entité-type LIGNE_FACTURE (désolé pour ce qui ressemble à un contre-ordre..) Qu’en est-il ?


    TVA

    Prévoyez-vous de suivre la date d’application des taux de TVA, sachant par exemple que début 2014 on s’en prendra plein la g... ? A titre d’exemple :



    Au niveau SQL :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    CREATE TABLE TVA (
       TvaId                INT                  NOT NULL,
       TvADateDepuis        DATETIME             NOT NULL,
       TvaTaux              INT                  NOT NULL,
       CONSTRAINT TVA_PK PRIMARY KEY (TvaId),
       CONSTRAINT TVA_AK UNIQUE (TvaTaux)
    ) ;
     
    CREATE TABLE TVA_HISTO (
       TvaId                INT                  NOT NULL,
       TVADateDurant        DATETIME             NOT NULL,
       TVATaux              INT                  NOT NULL,
       CONSTRAINT TVA_HISTO_PK PRIMARY KEY (TvaId, TVADateDurant),
       CONSTRAINT TVA_HISTO_TVA_FK FOREIGN KEY (TvaId)
          REFERENCES TVA (TvaId)
    ) ;
     
    CREATE TABLE ARTICLE (
       ArticleId            INT                  NOT NULL,
       TvaId                INT                  NOT NULL,
       ArtReference         VARCHAR(150)         NOT NULL,
       AetDesignation       VARCHAR(150)         NOT NULL,
       ArtPrixHt            INT                  NOT NULL,
       ArtQteStock          INT                  NOT NULL,
       Constraint ARTICLE_PK PRIMARY KEY (ArticleId),
       CONSTRAINT ARTICLE_TVA_FK FOREIGN KEY (TvaId)
          REFERENCES TVA (TvaId)
    ) ;


    Mode de paiement

    Le mode de paiement pourrait faire l’objet d’une entité-type à laquelle ferait référence la facture.


    ADRESSE

    Vous pouvez éventuellement établir une association directement entre PERSONNE et ADRESSE et par conséquent supprimer les liens CLIENT - ADRESSE et FOURNISSEUR -ADRESSE. Un inconvénient toutefois : selon votre MCD, un fournisseur a seulement une adresse, alors qu’avec la modification proposée, il peut en avoir plusieurs. Toutefois, on peut assurer la contrainte au niveau SQL au moyen d’un trigger.


    J’ai encore quelques remarques à faire, mais essayons déjà de stabiliser ce qu’on vient de traiter...


    Bonjour fsmrel
    Merci de ces bonnes remarques

    Entité-type COMMANDE
    Je n'ai pas trop compris.
    Mais c'est vrai que la boite gère ses propres numéros , qui sont par convention FR-année-mois-00(1) par exemple avec FR pour la France ainsi de suite ......

    De même que pour la facture et le devis .

    Entité-type LIGNE_COMMANDE

    pour cette entité j'ai fait plaisir à csik78

    Le montant (attribut Ligne_commande_montant) est bien égal au montant défini pour l’entité-type ARTICLE

    TVA
    voir le MCD ci dessous.

    ADRESSE
    J'ai vu avec le client et le fournisseur peut bien avoir une deuxième adresse
    du coup j'ai pris en compte votre suggestion.

    Le nouveau MCD :
    Images attachées Images attachées  

  10. #10
    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 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonsoir lilpayton,


    Citation Envoyé par lilpayton Voir le message

    Citation Envoyé par fsmrel Voir le message
    Entité-type COMMANDE
    Par convention, l’attribut Commande_Id est artificiel (non significatif, créé par le système, en principe caché à la vue de l’utilisateur). Mais l’entreprise ne gère-t-elle pas ses propres numéros de commande que par contraste on dira naturels (à l’usage de l’utilisateur, même si vous demandez au système de les générer eux aussi) ?
    Entité-type COMMANDE
    Je n'ai pas trop compris.
    Mais c'est vrai que la boite gère ses propres numéros , qui sont par convention FR-année-mois-00(1) par exemple avec FR pour la France ainsi de suite ......
    De même que pour la facture et le devis.
    Il y a plus de 25 ans, l’excellentissime Yves Tabourier à écrit ceci (De l’autre côté de MERISE, page 80), et c’est une règle d’or :
    « ... 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
    ... »
    Autrement dit, identifier une entité-type telle qu’un véhicule automobile par un numéro d’immatriculation ou autres informations portées sur une carte grise est à éviter. De la même façon identifier une entreprise par son numéro Siren est à prohiber dans un MCD : en effet, quand l’INSEE procède à une modification, ça peut être extrêmement pénalisant ⁽¹⁾.
    Les propriétés DevisId, CdeID et FactureId donnent lieu aux identifiants allant dans le sens des recommandations de Tabourier et les valeurs prises sont fournies par le SGBD, en les typant par exemple comme des numéroteurs (type Séquentiel de PowerAMC) :



    On ne touchera évidemment pas aux valeurs produites par le SGBD, puisqu’il n’y a aucune raison de le faire...


    Pour leur part, le numéro de devis, le numéro de commande et le numéro de facture font respectivement l’objet des identifiants alternatifs DevisNo, CdeNo et FactureNo dont les valeurs sont attribuées cette fois-ci par l’utilisateur ; ainsi CdeNo prendra des valeurs conformes à la structure que vous proposez : FR-année-mois-00(1).


    Conséquence sur le MCD :




    Je ne sais pas si j’ai été plus clair, n’hésitez pas à poser vos questions.

    Je repose ma question à propos de l’attribut (propriété) Commande_quantite de l’entité-type COMMANDE : que dénombre-t-on ?


    Citation Envoyé par lilpayton Voir le message
    Entité-type LIGNE_COMMANDE
    Le montant (attribut Ligne_commande_montant) est bien égal au montant défini pour l’entité-type ARTICLE
    Le 12/02/2013 on crée la commande 123456 comportant une ligne pour l’article 314116 dont le prix HT est égal à 100.
    Le 13/02/2013 le prix HT de l’article 314116 passe à 120.
    Le 14/02/2013 pour une raison x ou y on a perdu la trace de la commande 123456 qui doit donc être refaite à l’identique. En l’absence d’un historique des prix des articles, comment recréer la commande ?

    Même question concernant les devis et les factures.


    Entité-type LIGNE_FACTURE

    En l’absence de réponse, je repose la question :

    S’il doit y avoir égalité entre les lignes de facture et les lignes de commande (ce qui paraît assez sain dans notre monde cartésien !), on sait alors inférer les lignes de facture ⁽²⁾ : dans ce cas-là, on peut revenir à la situation initiale et ne pas modéliser l’entité-type LIGNE_FACTURE (désolé pour ce qui ressemble à un contre-ordre...) Quelle est votre position ?

    _______________________

    ⁽¹⁾ Je reprends un exemple dont je me sers de temps en temps : il s’agit du système préconisé par les concepteurs dans une très grande banque, consistant à identifier les entreprises par leur numéro Siren, fourni par un organisme extérieur, à savoir l’INSEE. Par voie de conséquence, au niveau du MLD (Modèle Logique de Données selon Merise), puis SQL, ce Siren devait être propagé dans toute la base de données par le jeu des liens clé primaire - clé étrangère. Les concepteurs avaient entrepris le montage d’une usine à gaz pour maintenir la cohérence entre les tables, parce que l’INSEE envoyait tous les mois les nombreux correctifs modifiant les numéros de Siren erronés. Je leur suggérai que l’identifiant de l’entreprise fît l’objet d’une propriété nouvelle et artificielle, invariante et sans signification, EntrepriseId, le numéro Siren devenant pour sa part identifiant alternatif, c'est-à-dire conservant sa spécificité : être unique et pouvant subir toutes les modifications de la part de l’utilisateur. Au niveau MLD et SQL, l’ex clé primaire, le numéro Siren devint donc clé alternative, point d'entrée dans la table, permettant à l'utilisateur d’accéder aux données de chaque entreprise, la suite des opérations se passant de façon transparente, encapsulée pour utiliser un jargon à la mode, grâce à la nouvelle clé primaire EntrepriseId : du point de vue de l’utilisateur et des règles fonctionnelles, rien de changé, mais l’usine à gaz disparut en fumée et tout le monde fut content.

    ⁽²⁾ En ce qui me concerne, je viens de recevoir la facture de mon plombier et, agréable surprise, le montant de moins élevé que celui de la commande que j'avais passée...
    (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.

  11. #11
    Futur Membre du Club
    Homme Profil pro
    echirolles
    Inscrit en
    Février 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : echirolles
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Bonsoir fsmrel
    Merci pour cette explication je vous poserai des questions s'il y a besoin,mais pour l'instant c'est un peu plus clair .
    Je fait de suite les modifications sur mon MCD .

    Je repose ma question à propos de l’attribut (propriété) Commande_quantite de l’entité-type COMMANDE : que dénombre-t-on ?

    -Pour cette question je pensais au nombre d'articles dans la commande.
    Mais je crois que je me suis gouré.

    Et pour l'historique des prix j'ai déjà fait la modification comme vous me l'avez conseillé dans le précédent MCD.

    Entité-type LIGNE_FACTURE

    Au début j'étais parti sur le fait qu'on pouvait justement déduire la ligne de facture à partir de la ligne de commande, c'est pour ça que je n'avais pas modélisé l'entité Ligne_Facture.

    Je vous joints quand même le nouveau MCD.
    Merci.
    Images attachées Images attachées  

  12. #12
    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 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonsoir lilpayton,


    J’attends donc le MCD où notamment l’historique des prix sera pris en compte.

    Bon 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.

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/10/2012, 11h52
  2. SaaS quelle solution pour une petite entreprise ?
    Par xalid dans le forum Cloud Computing
    Réponses: 2
    Dernier message: 08/10/2012, 11h52
  3. [AC-2003] Conception d'une BDD ave code barre pour une petite entreprise
    Par Piccou dans le forum Modélisation
    Réponses: 20
    Dernier message: 19/05/2010, 11h07
  4. Réalisation d'un reseau pour une petite entreprise
    Par amira dans le forum Administration
    Réponses: 4
    Dernier message: 04/03/2009, 21h00
  5. Réponses: 5
    Dernier message: 07/02/2008, 22h54

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