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

Requêtes MySQL Discussion :

Débutant en SQL : besoin d'aide pour un logiciel de gestion de stocks


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Points : 37
    Points
    37
    Par défaut Débutant en SQL : besoin d'aide pour un logiciel de gestion de stocks
    Bonjour,

    Je suis entrain de développez mon premier gros projet en Java avec Mysql que j'ai ensuite utilisé sur PhpMyAdmin.

    Il s'agit d'une gestion de stock.

    J'ai créer ma base de donnée avec le logiciel power amc (en utilisant Merise).

    Mais quand il s'agit de faire des requetes SQL c'est un autre problème.

    J'ai les table :

    FOURNISSEUR (Num_four (clé primaire), Raison_Sociale, Adresse, Code_Postal, Ville, Num_tel)

    ARTICLES (Num_art (clé primaire), Designation, Quantite, Prix, Reference)

    CORRESPOND (Num_four (clé primaire), Num_art (clé primaire))

    La table "CORRESPOND" c'est en fait la relation entre FOURNISSEUR et ARTICLE, donc je suppose que Num_four et Num_art sont clé étrangere et primaire ?

    L'utilisateur de mon programme va sur la page fournisseur : clique sur nouveau il saisie un fournisseur : en saisissant la raison sociale, l'adresse, le code postal, la ville et le numero de tel.

    Jusque la aucuns problemes, j'arrive a ajouter, modifier, supprimer des fournisseur à partir de mon programme.

    Le problème est le suivant :

    Pour saisir un article c'est un peu différent, en fait ce que je veux c'est que chaque fournisseur à ses articles qui lui sont liés.

    Par exemple : Le fournisseur 1 vend les articles : coca, orangina, etc...

    Pour saisir l'article c'est pareil que pour saisir un fournisseur, l'utilisateur va dans un menu et il clique sur nouvel article :

    Il choisit grâce a un combobox le fournisseur qu'il souhaite liéer a ses articles (cette combobox se remplie automatiquement à partir des fournisseurs existants dans la base).

    Ensuite il saisie les caracteristiques de l'article (la désignation, la reference, la quantité, le prix).

    Comment faire ma requete pour que l'article depend du fournisseur choisie dans la combobox ?

  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
    Article et fournisseur sont au départ indépendants.
    Tu as un formulaire pour les informations relatives à un fournisseur, il te faut un formulaire pour les informations relatives à un article.

    La liaison entre les fournisseurs et les produits représente quoi ?
    - le fait qu'un fournisseur fournit un article ?
    - le fait qu'on achète un article chez un fournisseur ? Il manquerait alors la quantité achetée et le prix d'achat.
    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
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Points : 37
    Points
    37
    Par défaut
    Merci de ta réponse.

    Alors je vais faire plus simple, voici le MCD (pour le moment il n'est pas finis, je rajouterais des tables maiss pour l'instant juste celle ci nous intéressent) :

    http://img197.imageshack.us/img197/2650/mcdw.png

    En gros :

    On a des fournisseurs... chaqu'un des fournisseurs a un ou plusieurs articles.

    Par exemple :

    Je créer le fournisseur numéro1
    Maintenant que mon fournisseur est créer je peu créer des articles et les ajouter a mon fournisseur :
    Dans mon programme je vais dans le menu article => ajouter

    Un formulaire apparait, la je choisis le fournisseur auquel je veux ajouter des article.

    Je prend donc fournisseur 1 dans la liste.

    Ensuite, je saisie l'article que je veux ajouter au fournisseur1 par exemple :
    article1, quantité : 10, prix: 20€ (quand on créer un fournisseur, on saisie ce qu'il y'a dans le stock actuellement, les entrées et les sorties seront gérer après)

    Jusqu'ici aucuns problemes

    mais il faut faire la requette pour implémenter ça dans la base de donnée

    En fait j'aimerais faire la liste des articles que possède chaque fournisseur grâce à ce système la.

    Par exemple j'aimerais pouvoir faire des requetes dans ce style plus tard (par exemple celle ci permet d'afficher tous les articles du fournisseur1)

    SELECT DESIGNATION
    FROM ARTICLE, FOURNISSEUR , CORRESPOND
    WHERE Article.Num_article = CORRESPOND.Num_article
    AND FOURNISSEUR.Num_four = CORRESPOND.Num_four
    AND FOURNISSEUR.Raison_Social LIKE "Fournisseur1"

    Voilà, j'espere que j'ai été assez clair, j'aimerais donc faire une requête qui permet d'ajouter à un fournisseur (on connait la raison sociale du fournisseur), un article.

    J'ai esseayé quelque chose comme ca pour tester mais ca ne fonctionne pas

    INSERT INTO ARTICLES (DESIGNATION, QUANTITE, PRIX, REFERENCE)
    VALUES ('chaussette', '20', '30', 'REF01')
    WHERE RAISON_SOCIAL FROM FOURNISSEUR LIKE 'JULIEN'

  4. #4
    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
    Citation Envoyé par snips67 Voir le message
    Je crée le fournisseur numéro1
    Maintenant que mon fournisseur est créé je peux créer des articles et les ajouter à mon fournisseur :
    Jusque là, ça va.
    Dans mon programme je vais dans le menu article => ajouter
    Il s'agit donc bien d'ajouter un article. Pas une relation entre l'article qui n'existe pas encore et un fournisseur qui existe peut-être.

    Un formulaire apparait, la je choisis le fournisseur auquel je veux ajouter des article.
    C'est une étape qui suppose que le fournisseur et les articles existent déjà en BDD.

    Je prend donc fournisseur 1 dans la liste.

    Ensuite, je saisie l'article que je veux ajouter au fournisseur1
    Non ! Tu choisis un article existant. Si l'article que tu veux faire correpondre au fournisseur n'existe pas, tu retombe sur la fonction de création de l'article.
    Si tu as par exemple 10 fournisseurs du produit X, tu ne vas pas saisir 10 fois les caractéristiques de l'article !

    En fait j'aimerais faire la liste des articles que possède chaque fournisseur grâce à ce système la.
    Et bien les jointures sont là pour ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT f.Num_four, f.Raison_Sociale, a.Num_article, a.designation
    FROM fournisseur AS f
    INNER JOIN correspond AS c ON f.Num_four = c.Num_four
      INNER JOIN artcile AS a ON c.Num_art = a.Num_art 
    ORDER BY f.Raison_Sociale, a.designation
    Par exemple j'aimerais pouvoir faire des requetes dans ce style plus tard (par exemple celle ci permet d'afficher tous les articles du fournisseur1)
    Avec la syntaxe normalisée depuis 1992 pour les jointures, et des alias pour faciliter la lecture, ça donne ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT a.DESIGNATION
    FROM ARTICLE AS a
    INNER JOIN CORRESPOND AS c ON a.Num_article = c.Num_article 
      INNER JOIN FOURNISSEUR AS f ON f.Num_four = c.Num_four
    WHERE f.Raison_Social LIKE 'Fournisseur1'
    A noter que les valeurs textuelles s'entourent d'apostrophes et non pas de guillemets.

    j'aimerais donc faire une requête qui permet d'ajouter à un fournisseur (on connait la raison sociale du fournisseur),
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO FOURNISSEUR (Raison_Sociale, Adresse, Code_Postal, Ville, Num_Tel)
    VALUES ('LaSociété', '2 rue Trucmuche', '31000', 'Toulouse', '0561012345')
    A noter que la ville devrait être externalisée dans une autre table et il ne devrait y avoir ici que l'identifiant de la ville.

    un article.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO ARTICLE (Designation, Quantite, Prix, Reference)
    VALUES ('Biglotron', 5, 152.00, 'AB1234')
    A noter que les valeurs numériques ne s'entourent pas d'apostrophes.

    Et pour enregistrer la correspondance entre les deux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    INSERT INTO CORRESPOND(Num_art, Num_four)
    VALUES (
      SELECT Num_art
      FROM ARTICLE
      WHERE Designation = 'Biglotron',
      SELECT Num_four
      FROM FOURNISSEUR
      WHERE Raison_Sociale = 'LaSociété'
    )
    Si tu récupères les identifiants du fournisseur (1) et de l'article (14) choisis par l'utilisateur dans ton formulaire, c'est encore plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO CORRESPOND(Num_art, Num_four)
    VALUES (1, 14)
    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 !

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Points : 37
    Points
    37
    Par défaut
    Whaaa merci beaucoup, j'avais pas du tout penser à ca !

    merci, j'ai enfin compris ^^

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

Discussions similaires

  1. Demande d'aide pour un logiciel de gestion des stocks
    Par ABDECHAFI dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 18/12/2011, 19h34
  2. [SQL] Besoin d'aide pour une requête
    Par PoichOU dans le forum Oracle
    Réponses: 7
    Dernier message: 03/05/2007, 10h26
  3. [PL / SQL] Besoin d'aide pour Optimisation
    Par shaun_the_sheep dans le forum SQL
    Réponses: 24
    Dernier message: 13/02/2007, 14h32

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