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

 MySQL Discussion :

renseignement BDD MySQL


Sujet :

MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 70
    Points : 45
    Points
    45
    Par défaut renseignement BDD MySQL
    Bonjour,

    Je ne sais pas si je suis dans la bonne section.

    Je veux développer une application php/mySQL pour gérer un stock de produits.

    Et donc en ce moment je suis acces sur la conception de la BDD stock:

    dont voici l'export:

    Code : 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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    -- Adminer 3.3.3 MySQL dump
     
    SET NAMES utf8;
    SET foreign_key_checks = 0;
    SET time_zone = 'SYSTEM';
    SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
     
    DROP TABLE IF EXISTS `batiment`;
    CREATE TABLE `batiment` (
      `id_batiment` int(11) NOT NULL,
      `nombatiment` varchar(7) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
     
     
    DROP TABLE IF EXISTS `commande`;
    CREATE TABLE `commande` (
      `refcommande` int(11) NOT NULL AUTO_INCREMENT,
      `numcommande` int(11) NOT NULL,
      `reffournisseur` int(11) NOT NULL,
      `datecommande` date NOT NULL,
      `datereception` date NOT NULL,
      PRIMARY KEY (`refcommande`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
     
     
    DROP TABLE IF EXISTS `fournisseur`;
    CREATE TABLE `fournisseur` (
      `reffournisseur` int(11) NOT NULL AUTO_INCREMENT,
      `nomfournisseur` varchar(50) NOT NULL,
      PRIMARY KEY (`reffournisseur`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
     
     
    DROP TABLE IF EXISTS `inventaire`;
    CREATE TABLE `inventaire` (
      `refinventaire` int(11) NOT NULL AUTO_INCREMENT,
      `dateinventaire` date NOT NULL,
      `refproduit` int(11) NOT NULL,
      `refcommande` int(11) NOT NULL,
      `unitescommandees` int(11) NOT NULL,
      `unitesrecues` int(11) NOT NULL,
      `unitesrestantes` int(11) NOT NULL,
      PRIMARY KEY (`refinventaire`),
      KEY `refcommande` (`refcommande`),
      KEY `refproduit` (`refproduit`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
     
     
    DROP TABLE IF EXISTS `produit`;
    CREATE TABLE `produit` (
      `refproduit` int(11) NOT NULL AUTO_INCREMENT,
      `nomproduit` varchar(55) NOT NULL,
      `descriptionproduit` char(150) NOT NULL,
      `reference` varchar(55) NOT NULL,
      `lot` varchar(55) NOT NULL,
      `prixunitaire` int(11) NOT NULL,
      `seuilreaprovisionnement` int(11) NOT NULL,
      `id_batiment` varchar(11) NOT NULL,
      PRIMARY KEY (`refproduit`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
     
     
    -- 2015-05-03 10:39:46
    J'ai fais des BDD sous Access

    je ne sais pas comment faire les jonctions 1 -> infini, 1 - infini comme dans Access

    par exemple dans ma BDD:

    un produit est présent dans différents bâtiments (la quantité totale de produit commandée est ensuite dispatché dans differents batiments: il faut peut etre que je cree une autre table pour pouvoir gere cette option plus tard dans php/mySQL)
    un fournisseur peut avoir plusieurs commandes
    plusieurs produits sont présent sur un bon de commande
    un produit peut avoir plusieurs numéros de lot

    apres en PHP/mySQL je gererais toutes les entrée avec une interface( grace à des requetes).

    Par contre je ne sais pas si j'ai toutes les donnees(dans les tables) qu'il faut

    Merci de votre aide.

    PS: peut etre que d'autres idees me viendront en tete au fur et à mesure de la conception de mon appli php/mySQL car je vais en faire une application avec des modules (ajouter des nouvelles fonctions)

  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
    un fournisseur peut avoir plusieurs commandes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TABLE `commande` (
      `refcommande` int(11) NOT NULL AUTO_INCREMENT,
      `numcommande` int(11) NOT NULL,
      `reffournisseur` int(11) NOT NULL,
      `datecommande` date NOT NULL,
      `datereception` date NOT NULL,
      PRIMARY KEY (`refcommande`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    Rien n'empêche un fournisseur de passer plusieurs commandes mais une commande n'est passée qu'à un seul fournisseur, ce qui est bien normal !

    plusieurs produits sont présent sur un bon de commande
    C'est ce qu'on appelle des "lignes de commande". Comme un bon de commande peut avoir plusieurs lignes, chacune pour un produit, et qu'un produit peut se retrouver sur plusieurs lignes de commande de bons de commandes différents, il faut donc une table pour ces lignes de commande.

    MCD :
    commande -1,n----comprendre----(1,1)- ligne_commande -1,1----concerner----0,n- produit

    Table :
    ligne_commande (numcommande, numligne, refproduit, quantite...)

    Voilà le genre de raisonnement à opérer pour chaque cas qui te pose question.

    en ce moment je suis acces sur la conception de la BDD stock:
    Et tu es allé un peu vite en partant directement sur les tables avant d'avoir schématisé ta base de données par un MCD solide.
    On peut t'aider pour cet exercice dans le forum Schéma.
    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
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 70
    Points : 45
    Points
    45
    Par défaut
    j'avais réalisé un schema de ma base de données Nom : base donnee stock.png
Affichages : 342
Taille : 51,3 Ko
    merci pour les autres infos fournis

  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
    j'avais réalisé un schema de ma base de données
    Tu devrais utiliser un logiciel de modélisation. Il en existe des gratuits, tels que JMerise ou Open Modelsphere. Ou encore, puisque tu veux implémenter ta base de données sous MySQL, tu peux utiliser MySQL Workbench.

    Revenons à ta préoccupation de base :
    je ne sais pas comment faire les jonctions 1 -> infini, 1 - infini comme dans Access
    Et bien d'après ton schéma (il s'agit en l'occurrence d'un MLD), tu les as déjà faites.
    Ce qui manque dans le code de création des tables, ce sont les clés étrangères.
    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
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 70
    Points : 45
    Points
    45
    Par défaut
    Ok merci pour ces renseignements, par contre je suis sous linux .
    Je voudrais savoir quel logiciel pour modéliser le MLD.
    Et est ce que cela creera les clefs etrangeres.

  6. #6
    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
    MySQL Workbench fonctionne sous Linux et est généralement inclus dans les distributions Linux. C'est le cas de Mageia.
    MySQL Workbench ne fait pas exactement ce qu'on appelle des MLD tels qu'on les apprend avec la méthode Merise mais des "Entity/relationship diagrams" qui sont très voisins des MLD.

    Oui, il crée les clés étrangères lui même quand on associe deux entités types.

    Voir le tutoriel de fsmrel, l'expert en modélisation de developpez.net.
    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 !

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 70
    Points : 45
    Points
    45
    Par défaut
    je voulais un autre renseignement à propos de la BDD:

    est ce que je dois faire une autre table pour un sous ensemble de produits,

    je m'explique:

    un produit contient une quantité donnée, et cette quantitée est repartie dans differents batiments

    par exemple : des DVD (quantitée: 500) sont repartis dans 3 batiments , 1er: 200, 2eme: 200, 3eme: 100

    car cela me permettra de gerer(nombres,inventaire, nombres restant, quantitée à recommander) les produits par batiment et donc par l'intermediaire de requete de connaitrele nombre total de produit à recommander pour une periode donnée.

    Merci

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 70
    Points : 45
    Points
    45
    Par défaut
    je me suis rendu compte que j'avais oublié de rajouter une autre entrée dans ma BDD : le nombre de mois qu'il faut avant de faire la prochaine commande.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 70
    Points : 45
    Points
    45
    Par défaut aidez moi
    bonsoir,

    je reviens vers vous car j'avais mis de coté ma base de donnée .

    je me retrouve avec une erreur :

    voici unepartie de ma BDD:

    Code : 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
    DROP TABLE IF EXISTS `batiment`;
    CREATE TABLE `batiment` (
      `idbatiment` int(11) NOT NULL AUTO_INCREMENT,
      `batiment` varchar(25) DEFAULT '',
      PRIMARY KEY (`idbatiment`),
      UNIQUE KEY `idbatiment` (`idbatiment`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
     
     
    DROP TABLE IF EXISTS `localisation`;
    CREATE TABLE `localisation` (
      `idlocalisation` int(11) NOT NULL AUTO_INCREMENT,
      `idproduits` varchar(25) DEFAULT '',
      `idbatiment` varchar(25) DEFAULT '',
      `quantitebat` int(11) NOT NULL DEFAULT '',
      `quantbatrest` int(11) NOT NULL DEFAULt '',
      PRIMARY KEY (`idlocalisation`),
      UNIQUE KEY `idlocalisation` (`idlocalisation`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
     
     
    DROP TABLE IF EXISTS `produits`;
    CREATE TABLE `produits` (
      `idproduits` int(11) NOT NULL AUTO_INCREMENT,
      `Nom` varchar(25) DEFAULT '',
      `Ref` varchar(25) DEFAULT '',
      `Lot` varchar(25) DEFAULT '',
      PRIMARY KEY (`idproduits`),
      UNIQUE KEY `idproduits` (`idproduits`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
    l'erreur: Erreur dans la requête: Invalid default value for 'quantitebat'

    et j'ai encore 3 tables a rajouter

  10. #10
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 378
    Points : 19 054
    Points
    19 054
    Par défaut
    Salut ludovic787.

    Cela ne te parait pas bizarre décrire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    `quantitebat` int(11) NOT NULL DEFAULT '',
    `quantbatrest` int(11) NOT NULL DEFAULt '',
    La valeur par défaut "vide" ne fonctionne que pour le type "char" ou "varchar".
    Mets zéro, cela sera plus logique de le faire sur une colonne de type numérique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    `quantitebat` int NOT NULL DEFAULT 0,
    Oui, mais comment vas-tu faire la distinction entre le zéro qui est une valeur renseignée, du zéro qui est la valeur par défaut ?
    C'est pourquoi, il est préférable de mettre plutôt NULL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    `quantitebat` int NULL DEFAULT NULL,
    Autre remarque, il est inutile de préciser le nombre de digit que tu veux afficher sur un integer. Ne met rien !

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 70
    Points : 45
    Points
    45
    Par défaut
    merci pour l'aide apportée.

    si j'ai encore des problemes je les posterais ici.

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/01/2005, 21h09
  2. Gestion de bdd MySql
    Par carlito dans le forum Débuter
    Réponses: 2
    Dernier message: 30/03/2004, 14h54
  3. Changements de colonnes dans une BDD MySQL
    Par arnaud_verlaine dans le forum Requêtes
    Réponses: 8
    Dernier message: 07/08/2003, 11h33
  4. connection a une BDD MySql
    Par delire8 dans le forum MFC
    Réponses: 7
    Dernier message: 19/06/2002, 18h18

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