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 :

Modeliser une base Sql


Sujet :

Schéma

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Modeliser une base Sql
    Bonjour

    je suis débutant et j'aimerais avoir des conseils dans la modélisation d'une petite base. le besoin est le suivant:
    j'ai une commande, cette commande contient une références produit, le produit contient diffèrentes pièces, ces pièces sont toujours les mêmes pour un produit mais les couleurs de ces pièces peuvent varier. j'ai pas conclure la structure de la base de donnée.

    Pour l'instant voici ce que j'ai pu modéliser:

    une table commandes ,une table produit, une table pièces et une table pieces_couleurs_produit.
    cependant je ne sais pas l'exactitude de ce modèle, si possible de m'éclairer la dessus ou de m'indiquer un tuto à suivre pour faire un bonne modélisation.

    Merci d'avance

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Avant de penser aux tables, penser à réaliser un schéma, tel qu'un MCD (méthode Merise) ou un diagramme de classes UML.

    Et pour réaliser votre schéma, utilisez un logiciel de modélisation. Côté gratuit, il existe par exemple Open Modelsphere.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Futur Membre du Club
    Inscrit en
    Décembre 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Merci pour le lien, j'ai lu, mais je trouve que dans mon cas c'est un peu compliqué car je dois enregistrer l'article avec une références couleur/pièces pour une prochaine utilisation, l'utilisateur ne refait plus la saisie si déjà faite.


  4. #4
    Membre confirmé Avatar de vg-matrix
    Inscrit en
    Février 2007
    Messages
    1 220
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Février 2007
    Messages : 1 220
    Points : 612
    Points
    612
    Par défaut
    Citation Envoyé par tati.tanya Voir le message
    Merci pour le lien, j'ai lu, mais je trouve que dans mon cas c'est un peu compliqué car je dois enregistrer l'article avec une références couleur/pièces pour une prochaine utilisation, l'utilisateur ne refait plus la saisie si déjà faite.

    Bonjour à vous, je crois bien que le lien qui vous a été proposé a pour but d'attirer votre attention sur la logique de conception du système. Il vous faut maîtriser les bases de la conception relationnelle après le reste vous paraîtra très logique.

    Bonne chance à vous
    Il est difficile de retrouver ses erreurs lorsqu'on est persuadé que son code est juste...

    Groupe des développeurs ivoiriens

  5. #5
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Déjà une précision à apporter :
    cette commande contient une références produit
    1 commande ne contient-elle toujours qu'1 seul produit ou peut-elle en contenir plusieurs ?

    Je vais supposer que la règle de gestion est plutôt, classiquement, la suivante :
    Une commande contient de 1 à plusieurs produits et un produit peut être inclus dans plusieurs commandes.

    MCD1 :
    Commande -1,n----Contenir----0,n- Produit

    Tables :
    Produit (prd_id, prd_nom...)
    Commande (cmd_id, ...)
    Ligne_commande (lc_id_commande, lc_id_produit, lc_quantite...)

    le produit contient diffèrentes pièces, ces pièces sont toujours les mêmes pour un produit
    Règle de gestion :
    Un produit contient de 1 à plusieurs pièces et une pièce peut être contenue dans plusieurs produits.

    MCD2 :
    Produit -1,n----Contenir----0,n- Piece

    Tables :
    Produit (prd_id, prd_nom...)
    Piece (pce_id, pce_nom...)
    Contenu_produit (cp_id_produit, cp_id_piece, cp_quantite...)

    cette commande contient une références produit
    ...
    mais les couleurs de ces pièces peuvent varier
    Je suppose qu'il faut mémoriser, pour chaque produit de chaque commande, les couleurs des pièces.

    Commençons par modifier le MCD1 pour transformer l'association Contenir en entité Ligne_commande :
    MCD1bis :
    Commande -1,n----Contenir----(1,1)- Ligne_commande -(1,1)----Concerner----0,n- Produit

    Les cardinalités entre parenthèses signifient une identification relative de ligne_commande par rapport aux deux autres entités, ce qui signifie que l'entité ligne_commande n'a pas d'identifiant propre.

    Les tables ne changent pas :
    Produit (prd_id, prd_nom...)
    Commande (cmd_id, ...)
    Ligne_commande (lc_id_commande, lc_id_produit, lc_quantite...)

    Associons maintenant la ligne_commande aux pièces en transformant directement l'association naturelle en entité.

    MCD3 :
    Ligne_commande -1,n----Contenir----(1,1)- Detail_ligne -(1,1)----Concerner----0,n- Piece

    Tables :
    Ligne_commande (lc_id_commande, lc_id_produit, lc_quantite...)
    Piece (pce_id, pce_nom...)
    Detail_ligne (dl_id_commande, dl_id_produit, dl_id_piece...)

    Associons l'entité detail_ligne à la couleur :
    MCD4 :
    Detail_ligne -1,1----Colorier----0,n- Couleur

    Tables :
    Couleur (clr_id, clr_nom...)
    Detail_ligne (dl_id_commande, dl_id_produit, dl_id_piece, dl_id_couleur...)

    Rassemblez les morceaux et vous aurez presque fini votre MCD.
    Il faut ajouter une contrainte sur le couple {dl_id_produit, dl_id_piece} qui être inclus dans l'entité Contenu_produit. Cette contrainte se traduira par un trigger à l'insertion dans la table Detail_ligne.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  6. #6
    Futur Membre du Club
    Inscrit en
    Décembre 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Merci d'avoir pris le temps de clarifier tout ça, c'est plus clair pour moi.
    Je mets Résolu et merci encore une fois

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

Discussions similaires

  1. Migrer un fichier excel vers une base sql serveur
    Par vdavid1982 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 12/07/2005, 16h26
  2. Importer une base SQL Server sous... SQL Server !
    Par Damsou dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 22/06/2005, 15h10
  3. Backup et restore d'une base SQL Server
    Par ZeKlubb dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/03/2005, 18h17
  4. [sgbd] Ouvrir une base sql
    Par Mu_Belier dans le forum SGBD
    Réponses: 4
    Dernier message: 07/06/2004, 13h05
  5. Comment se connecter à une base SQL server
    Par zapia dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 22/10/2003, 17h39

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