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

ALM Discussion :

diagramme de classe -> création table sql serveur


Sujet :

ALM

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Avril 2014
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2014
    Messages : 50
    Points : 32
    Points
    32
    Par défaut diagramme de classe -> création table sql serveur
    Bonjour,

    je développe mon premier logiciel ou j'ai des commandes et des livraisons.

    J'ai réalisé le diagramme de classe suivant (figure 1) qui a la même signification selon mes recherche que le diagramme (figure 2).

    A présent j'essaie de créer la bd sous sql server. Mais là je suis bloqué. Je me disais que l'id de la commande + l'id du produit inclusent dans la table ligneCommande serviraient de relation unique pour relier la table ligneBonLivraison mais là sql serveur refuse et me dit que pour cette action une clé primaire doit être définie dans la table ligneBonLivraison.(figure 3)

    Il s'agit de mon premier diagramme et logiciel donc si quelqu'un pouvait confirmer mes dires et m’éclairer sur la solution à mon problème je lui en serait très reconnaissant

    Dans ce diagramme je stipule que une commande peut posséder plusieurs ligne de commande qui peuvent éventuellement être livré en une seule ou plusieurs fois. Dons un ligne de 50 produit x peut être livré en 3 fois ( 25 - 15 - 10) par exemple.

    Figure 1:

    Nom : visio.PNG
Affichages : 2195
Taille : 20,4 Ko

    Figure 2:

    Nom : visio_non_classe.PNG
Affichages : 2067
Taille : 23,7 Ko
    Figure 3:

    Nom : sql_server.PNG
Affichages : 5119
Taille : 17,5 Ko

  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
    Bonsoir Anthony,


    Citation Envoyé par Anthony
    J'ai réalisé le diagramme de classe suivant (figure 1) qui a la même signification selon mes recherche que le diagramme (figure 2).
    Hum...Pas tout à fait. Dans le diagramme de la figure 2,la cardinalité 0..1 portée par le lien connectant ligneCommande et ligneLivraison devrait être remplacée par 1..1 (une ligne de livraison sans rien en face ça ne veut pas dire grand-chose...)

    Selon votre diagramme de la figure 3, les tables ligneCommande et ligneBonLivraison n’ont pas de clé primaire, c’est à corriger. Par exemple ainsi :




    Ce qui correspond au code SQL suivant :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    CREATE TABLE Produit
    (
            idProduit                INT             NOT NULL
        , CONSTRAINT Produit_PK PRIMARY KEY (idProduit)          
    ) ;
     
    CREATE TABLE bonCommande
    (
            idBonCommande            INT             NOT NULL
          , Reference                VARCHAR(32)     NOT NULL    
          , dateCommande             DATE            NOT NULL            
        , CONSTRAINT bonCommande_PK PRIMARY KEY (idBonCommande)          
    ) ;
     
    CREATE TABLE ligneCommande
    (
            idBonCommande            INT             NOT NULL
          , idProduit                INT             NOT NULL    
          , Quantite                 INT             NOT NULL            
        , CONSTRAINT ligneCommande_PK PRIMARY KEY (idBonCommande, idProduit)  
        , CONSTRAINT ligneCommande_bonCommande_FK FOREIGN KEY (idBonCommande) REFERENCES bonCommande
              ON DELETE CASCADE      
        , CONSTRAINT ligneCommande_Produit_FK FOREIGN KEY (idProduit) REFERENCES Produit  
    ) ;
     
    CREATE TABLE bonLivraison
    (
            idbonLivraison           INT             NOT NULL   
          , dateLivraison            DATE            NOT NULL            
        , CONSTRAINT bonLivraison_PK PRIMARY KEY (idbonLivraison)          
    ) ;
     
    CREATE TABLE ligneBonLivraison
    (
            idbonLivraison           INT             NOT NULL
          , idligneBonLivraison      INT             NOT NULL    
          , idBonCommande            INT             NOT NULL      
          , idProduit                INT             NOT NULL      
        , CONSTRAINT lligneBonLivraison_PK PRIMARY KEY (idbonLivraison, idligneBonLivraison)  
        , CONSTRAINT ligneBonLivraison_bonLivraison_FK FOREIGN KEY (idbonLivraison) REFERENCES bonLivraison
              ON DELETE CASCADE      
        , CONSTRAINT ligneBonLivraison_ligneCommande_FK FOREIGN KEY (idBonCommande, idProduit) REFERENCES ligneCommande   
    ) ;
    (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. diagramme de classe -> création table sql serveur
    Par Anthony_C dans le forum Débuter
    Réponses: 1
    Dernier message: 03/06/2014, 02h20
  2. jointure sur 3 tables SQL SERVEUR 2005
    Par djilos dans le forum Développement
    Réponses: 4
    Dernier message: 06/05/2009, 15h12
  3. Réponses: 2
    Dernier message: 10/07/2007, 07h01
  4. Réponses: 3
    Dernier message: 16/01/2007, 17h50
  5. Supprimer une image dans une table SQL Serveur 2000
    Par Soobook dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 14/09/2006, 17h00

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