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 :

Aide pour la construction d'une bdd (MySQL 5.0.51a / phpMyAdmin 2.11.8)


Sujet :

MySQL

  1. #1
    Membre à l'essai Avatar de debutant001
    Profil pro
    Eric
    Inscrit en
    Mai 2002
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Eric

    Informations forums :
    Inscription : Mai 2002
    Messages : 47
    Points : 24
    Points
    24
    Par défaut Aide pour la construction d'une bdd (MySQL 5.0.51a / phpMyAdmin 2.11.8)
    Bonjour à tous,

    J'espère que je suis dans la bonne section sachant que mon soucis porte sur MySQL et/ou phpMyAdmin, je ne sais pas trop...

    En effet, je débute complètement en bdd... (MySQL 5.0.51a via phpMyAdmin 2.11.8.1deb5+lenny3 sur Linux)
    Pour apprendre, je parcours les différents tutos sur ce site et à droite et à gauche sur le Net, mais je suis aussi en train de lire le livre "PHP et MySQL pour les nuls" (ne rigolez pas !) et je butte sur le principe de relation entre tables...

    J'ai 1 bdd "anicata" contenant 2 tables "animal" et "type".
    La table "animal" contient "animal_id" (clé primaire), "animal_nom", "animal_type", "animal_image".
    La table "type" contient "animal_type" (clé primaire), "animal_type_description".

    Ce que je cherche à faire, c'est mettre en relation les 2 tables "animal_type" afin de ne pas répéter 50 milliards de fois dans la table "animal" le type et la description de l'animal...

    1°) déjà, est-ce que c'est bien comme ça qu'on procède quand on "pense" une bdd ?

    2°) J'ai cru comprendre que pour pouvoir avoir des relations entre tables, il fallait que le moteur de stockage de MySQL soit "InnoDB" et non "MyISAM"... est-ce exact ?

    3°) Normalement, phpMyAdmin permet à l'aide de l'onglet "Concepteur" de générer facilement (car graphiquement) des liens entre tables... sauf que sur mon phpMyAdmin, cet onglet n'existe pas !
    J'ai donc parcouru le Net et ai trouvé ce tuto qui normalement devrait résoudre cette abscence d'onglet.
    Or, je n'ai pas de fichier "create_tables_mysql_4_1_2+.sql" dans le répertoire "/usr/share/phpmyadmin/scripts/" mais juste un fichier "setup.php" !
    J'ai donc cherché et finalement trouvé le contenu de ce fameux fichier ici et l'ai exécuté sur ma base "anicata" en ayant préalablement crée un utilisateur "pma" (avec le mot de passe qui va bien) et modifié le fichier "config.inc.php" en ajoutant les lignes suivantes :
    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
     
    /* nom de la base de donnée qui contient toutes les table modules que vous ajouterez */
    $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
     
    /* nom de la table pour la mise en favoris des requêtes */
    $cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
     
    /* nom de la table pour la gestion des relations entre les tables de vos bases de données */
    $cfg['Servers'][$i]['relation'] = 'pma_relation';
     
    /* tables des informations sur vos table (infobulles) */
    $cfg['Servers'][$i]['table_info'] = 'pma_table_info';
     
    /* tables des coordonnées des schema de tables dans le document pdf */
    $cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
     
    /* encore une table necessaire à la generation pdf */
    $cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
     
    /* infobulles sur les champs de vos tables */
    $cfg['Servers'][$i]['column_info'] = 'pma_column_info';
     
    /* conservation de l'historique des requêtes */
    $cfg['Servers'][$i]['history'] = 'pma_history';
     
    /* coordonées des tables enregistrée en mode graphique */
    $cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
     
    $cfg['Servers'][$i]['controluser'] = 'pma';
    $cfg['Servers'][$i]['controlpass'] = 'XXXXX';
    La base "phpmyadmin" s'est bien crée (avec 8 tables) et les droits de l'utilisateur "pma" ont bien été modifiés.
    J'ai quitté et redémarré phpMyAdmin, mais malheureusement l'onglet "Concepteur" n'apparaît toujours pas...

    Quelqu'un peut me dire où est-ce que je fais une erreur svp, car là je suis complètement perdu !!!

    Merci d'avance pour votre aide,
    Eric

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par debutant001 Voir le message
    1°) déjà, est-ce que c'est bien comme ça qu'on procède quand on "pense" une bdd ?
    Oui.
    Ta structure de BDD répond à la règle de gestion suivante :
    "Un animal est d'unseul type et un type peut englober plusieurs animaux."

    Ce qui se traduit en schéma (MCD Merise) suivant :
    Type -0,n----Englober----1,1- Animal

    La cardinalité 1,1 du côté de l'entité Animal fait que la table qui en sera issue accueillera une clé étrangère faisant référence à l'identifiant de l'entité Type.

    2°) J'ai cru comprendre que pour pouvoir avoir des relations entre tables, il fallait que le moteur de stockage de MySQL soit "InnoDB" et non "MyISAM"... est-ce exact ?
    Oui.
    Le moteur MyISAM n'implémente pas les clé étrangères (FOREIGN KEY). Il ignore superbement les instruction relatives à cet outil pourtant indispensable à une bonne BDDR.

    3°) Normalement, phpMyAdmin permet à l'aide de l'onglet "Concepteur" de générer facilement (car graphiquement) des liens entre tables... sauf que sur mon phpMyAdmin, cet onglet n'existe pas !
    Je ne sais pas où tu as vu cette information mais je n'ai jamais vu d'onglet "concepteur" non plus dans phpMyAdmin !

    J'ai donc parcouru le Net et ai trouvé ce tuto qui normalement devrait résoudre cette abscence d'onglet.
    Or, je n'ai pas de fichier "create_tables_mysql_4_1_2+.sql" dans le répertoire "/usr/var/phpmyadmin/scripts/" mais juste un fichier "setup.php" !
    Ben moi je n'ai carrément pas ce répertoire, ni même dans /var/www/phpmyadmin !

    Je ne peux donc malheureusement pas t'aider pour la suite.

    Cependant, tu peux aussi utiliser le logiciel de modélisation MySQL Workbench qui, en version gratuite, te donnera les scripts de création des tables avec les clés étrangères et les index.

  3. #3
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Saluton,
    Ton post contient beaucoup de choses, peut-être trop, je vais essayer d'y répondre point par point:
    Citation Envoyé par debutant001 Voir le message
    En effet, je débute complètement en bdd... (MySQL 5.0.51a via phpMyAdmin 2.11.8.1deb5+lenny3 sur Linux)
    Pour apprendre, je parcours les différents tutos sur ce site et à droite et à gauche sur le Net, mais je suis aussi en train de lire le livre "PHP et MySQL pour les nuls" (ne rigolez pas !) et je butte sur le principe de relation entre tables...

    J'ai 1 bdd "anicata" contenant 2 tables "animal" et "type".
    La table "animal" contient "animal_id" (clé primaire), "animal_nom", "animal_type", "animal_image".
    La table "type" contient "animal_type" (clé primaire), "animal_type_description".

    Ce que je cherche à faire, c'est mettre en relation les 2 tables "animal_type" afin de ne pas répéter 50 milliards de fois dans la table "animal" le type et la description de l'animal...

    1°) déjà, est-ce que c'est bien comme ça qu'on procède quand on "pense" une bdd ?
    Normalement on passe d'abord par une phase de modélisation de la base en s'appuyant, souvent, sur la méthode MERISE
    Citation Envoyé par debutant001 Voir le message
    2°) J'ai cru comprendre que pour pouvoir avoir des relations entre tables, il fallait que le moteur de stockage de MySQL soit "InnoDB" et non "MyISAM"... est-ce exact ?
    C'est faux, mais, contrairement à des SGBD comme MS Access, la relation entre tables est à écrire dans les requêtes. Toutefois, seul le moteur InnoDB gère les contraintes d'intégrité de clés étrangères, mais les relations entre les tables doivent toujours y être dépeintes au sein des requêtes
    Citation Envoyé par debutant001 Voir le message
    3°) Normalement, phpMyAdmin permet à l'aide de l'onglet "Concepteur" de générer facilement (car graphiquement) des liens entre tables... sauf que sur mon phpMyAdmin, cet onglet n'existe pas !
    Je ne sais pas de quoi tu parles, j'ai la version 3.1.3 de phpMyAdmin et je n'ai jamais vu ni entendu parler d'onglet Concepteur.
    Par contre il existe des outils comme DBDesigner Fork voire MySQL WorkBench qui pourraient t'être d'un grand secours

  4. #4
    Membre à l'essai Avatar de debutant001
    Profil pro
    Eric
    Inscrit en
    Mai 2002
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Eric

    Informations forums :
    Inscription : Mai 2002
    Messages : 47
    Points : 24
    Points
    24
    Par défaut
    Déjà, un grand merci d'avoir pris le temps de me répondre : c'est super sympa !

    A propos de la méthode "MERISE", je dois reconnaître que j'ai complètement zappé cet phase, à priori indispensable, de modélisation... Il y a beaucoup de tutos sur ce site... (peut-être trop) et je suis passé à coté...
    Et dans mon bouquin, à part conseiller de coucher sur le papier la bdd que l'on veut faire, rien d'autre n'est précisé...

    Concernant ma troisième question, ce n'est pas moi qui l'ai inventé l'existance de cet onglet !
    En faisant mes recherches sur le Net, j'ai trouvé qu'on en parlait ici et et encore ... (avec screenshoot !)

    @CinePhil : Par contre, je me suis complètement planté sur le chemin du répertoire dans lequel devrait se trouver le fichier "create_tables_mysql_4_1_2+.sql" !!!
    Le vrai chemin est "/usr/share/phpmyadmin/scripts/"... desolé (j'ai corrigé sur mon post initial)

    @all : merci pour le lien vers MySQL Workbench !
    => je vais étudier ça et reviendrais sûrement vers vous car mon seul et unique neurone arrive parfois à se gripper...

  5. #5
    Membre à l'essai Avatar de debutant001
    Profil pro
    Eric
    Inscrit en
    Mai 2002
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Eric

    Informations forums :
    Inscription : Mai 2002
    Messages : 47
    Points : 24
    Points
    24
    Par défaut
    Pour ceux que ça intéresse, j'ai résolu mon pb d'onglet "Concepteur" !!!

    En fait, le fichier à modifier s'appelle bien "config.inc.php" mais ne se situe pas dans "/usr/share/phpmyadmin/" comme indiqué un peu partout... mais dans "/etc/phpmyadmin/"... (Ce qui en réfléchissant est tout à fait logique !)

    Ce fichier est en fait déjà correctement rempli mais tout ce qui concerne le paramétrage de l'onglet "Concepteur" est commenté !
    Il suffit donc de dé-commenter tout ça, de mettre le mot de passe qui va bien pour l'utilisateur "pma", de sauvegarder et zou...

    Merci encore pour votre aide !

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

Discussions similaires

  1. [XL-2003] Fichier mysql connector odbc indispensable pour un export vers une BDD mysql ?
    Par magikmed dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 24/02/2015, 11h05
  2. Réponses: 4
    Dernier message: 23/08/2014, 13h12
  3. [AC-2010] Aide pour la construction d'une requête ?
    Par [ZiP] dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 07/03/2014, 00h15
  4. demande d'aide pour la création d'une BDD
    Par RasWisdom dans le forum Débuter
    Réponses: 2
    Dernier message: 16/04/2013, 11h49
  5. [MySQL] Parser un fichier BibTex pour l'insérer dans une bdd MySQL
    Par Samax dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 07/09/2011, 15h23

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