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

Modélisation Discussion :

modelisation d'une table dont les informations s'ajoutent par colonne


Sujet :

Modélisation

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

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

    Informations forums :
    Inscription : Avril 2011
    Messages : 19
    Points : 13
    Points
    13
    Par défaut modelisation d'une table dont les informations s'ajoutent par colonne
    Bonsoir

    je doit faire une modélisation d'une base de données mais j'ai un problème dans la modélisation d'une table(la forme du tableau dans pièces jointes) l'utilisateur saisit des informations chaque mois et elles doivent être stockées dans la colonnes spécifique.
    je ne sais pas comment je peux modéliser ce genre de table puisque les informations s'enregistrent par ligne (1 clé primaire par ligne).

    merci en avance pour toute suggestion
    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 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
    Bonjour rose-rose,


    Avec la structure tabulaire suivante, ça devrait aller :

    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
    CREATE TABLE T1
    (
    T1Id        INT                   NOT NULL,
    T1Nom       VARCHAR(32)           NOT NULL,
    CONSTRAINT T1_PK PRIMARY KEY (T1Id) 
    ) ;
    CREATE TABLE T2
    (
    T1Id         INT                   NOT NULL,
    Mois         INT                   NOT NULL,
    Quantite     INT                   NOT NULL,
    CONSTRAINT T2_PK PRIMARY KEY (T1Id, Mois), 
    CONSTRAINT T2_FK FOREIGN KEY (T1Id) REFERENCES T1 (T1Id) 
                     ON DELETE CASCADE,
    CONSTRAINT T2_MOIS CHECK (Mois BETWEEN 1 AND 12)
    ) ;

    La table T1 est dévolue aux éléments de base (Pièces, blindage, etc.) et la table T2 sert à engranger les quantités par élément et par mois.
    (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
    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
    Une précision :

    Pour obtenir le total par élément (Pièces, blindage, etc.) tous mois confondus, vous pouvez utiliser les fonctions d’agrégation fournies par votre SGBD. Sinon, pour rester très général, vous pouvez définir une vue :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE VIEW V1 (T1Id, Quantite)
    AS
    SELECT T1Id, Quantite
    FROM   T2 ;

    Et l’exploiter ainsi :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT T1Id, SUM(Quantite) AS Total_Par_Element 
    FROM   V1
    GROUP BY T1Id ;

    De la même façon, pour obtenir le total par mois, tous éléments confondus, toujours pour rester très général, vous pouvez définir une autre vue :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE VIEW V2 (Mois, Quantite)
    AS
    SELECT Mois, Quantite
    FROM   T2 ;

    Et l’exploiter ainsi :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Mois, SUM (Quantite) AS Total_Par_Mois 
    FROM   V2
    GROUP BY Mois ;

    Si vous voulez obtenir le total général :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT SUM(Quantite) AS Grand_Total 
    FROM   V1 ;
    (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.

  4. #4
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

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

    Informations forums :
    Inscription : Avril 2011
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    merci infiniment fsmrel pour votre réponse
    la conception que vous avez donné est exactement ce que je cherche

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 12/07/2011, 18h19
  2. modifier des tables dont les noms sont dans une autre
    Par lapin_did dans le forum Requêtes
    Réponses: 1
    Dernier message: 06/09/2010, 09h45
  3. Réponses: 2
    Dernier message: 24/10/2008, 08h04
  4. Créer une table dont les noms de colonnes sont des paramètres
    Par Mythrandil dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 08/09/2007, 15h08
  5. Réponses: 6
    Dernier message: 08/02/2007, 14h41

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