Professional Documents
Culture Documents
phpMyAdmin est une interface sous forme de site permettant d'administrer une base de donnes MySQL. On peut ainsi crer une base, des tables, des champs etc. Un artefact utilis lors de la cration d'une base est la relation entre tables. Il est possible d'utiliser phpMyAdmin pour crer des relations entre tables via l'interface mais ceci exige de configurer phpMyAdmin car cette interface n'offre pas directement la possibilit de le faire. Cet article a pour but de montrer rapidement comment s'y prendre. D'autres options plus ou moins utiles s'offriront l'utilisateur en plus de la cration de relations.
I - Introduction I-A - Pour qui c'est fait... I-B - ... et pour quoi faire... II - Installation de phpMyAdmin III - Import du script sous phpmyAdmin IV - Configuration de l'infrastructure de tables lies IV-A - Le mode manuel IV-B - Le mode graphique IV-B-1 - Configurer phpMyAdmin IV-B-2 - Crer la base V - Conclusion V-A - La cration graphique d'une relation entre tables V-B - L'enregistrement de requtes dans les signets V-C - La cration de PDF
-2Copyright 2008 - Samuel Sayag. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://php.developpez.com/cours/pma-tables-liees/
-3Copyright 2008 - Samuel Sayag. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://php.developpez.com/cours/pma-tables-liees/
II - Installation de phpMyAdmin
Je ne m'tendrai pas ici sur l'installation de phpMyAdmin qui s'accompagne en gnral du serveur MySQL, d'Apache et de PHP. Vous pouvez installer ceux-ci sparment, ou avec des installateurs de plus en plus conviviaux.
Je vais considrer que vous avez trouv votre bonheur avec un des liens ci-dessus ou que vous vous tes dbrouill par vous mme, en tout cas que l'installation est maintenant oprationnelle.
-4Copyright 2008 - Samuel Sayag. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://php.developpez.com/cours/pma-tables-liees/
III - Import du script sous phpmyAdmin Maintenant, nous allons importer cette base vide.
1 2 Lancez phpmyAdmin si ce n'est dj fait ; Cette icne permet d'ouvrir le module d'import de code SQL :
Figure 1. Fentre du module d'import de code SQL Cliquez sur "Importez les fichiers", puis sur "Parcourir", slectionnez votre fichier sauvegard et cliquez sur "Excuter".
-5Copyright 2008 - Samuel Sayag. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://php.developpez.com/cours/pma-tables-liees/
Mais, comme sur plusieurs SGBD actuels, il y a maintenant possibilit de le faire directement de manire graphique.
Figure 2. Menu base de donnes sous phpMyAdmin Lorsque j'ai voulu ajouter la contrainte dcrite prcdemment, je suis all naturellement dans "Opration" et j'ai eu la surprise de voir ceci en bas de page (voir figure 3) :
-6Copyright 2008 - Samuel Sayag. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://php.developpez.com/cours/pma-tables-liees/
En cliquant "ici" comme ils disent, on apprend en anglais ou en franais que les relations entre les tables sont gouvernes par une table que l'on peut ajouter, au choix, dans sa propre base de donnes ou dans une autre base de donnes. Le second choix vous laisse la possibilit de rpertorier les relations entre tables mais pour plusieurs bases diffrentes. C'est une solution qui parat, a priori, plus propre. Nous allons l'adopter. Vous avez remarqu qu'au dbut du tutoriel, il est dit que l'installation va galement permettre de mettre en favoris vos requtes, mettre des info-bulles sur les champs de vos tables, gnrer des PDF etc. Cela va galement se faire grce des tables que vous installerez de la mme manire que la table de relations.
-7Copyright 2008 - Samuel Sayag. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://php.developpez.com/cours/pma-tables-liees/
ditez le fichier wamp\apps\phpMyAdmin2.10.1\config.inc.php. Ce fichier vous permet de redfinir, au moment du lancement de phpMyAdmin, la valeur de plusieurs paramtres de cette application. Tous ces paramtres sont mis dans un dictionnaire (ou "map"). Nous allons donner certaines de ces variables une valeur en rapport avec la base ainsi que les tables qui viennent d'tres cres. Script du fichier de configuration des paramtres de phpMyAdmin
<?php /* nom de la base de donne qui contient toutes les table modules que vous ajouterez */ $cfg['Servers'][$i]['pmadb'] = 'phpMyAdmin'; /* nom de la table pour la mise en favoris des requtes*/ $cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark'; /* nom de la table pour la gestion des relations entre les tables de vos bases de donnes*/ $cfg['Servers'][$i]['relation'] = 'pma_relation'; /* tables des informations sur vos table (infobulles)*/ $cfg['Servers'][$i]['table_info'] = 'pma_table_info'; /* tables des coordonnes 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 requtes*/ $cfg['Servers'][$i]['history'] = 'pma_history'; /* coordones des tables enregistre en mode graphique*/ $cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
Maintenant, il ne vous reste plus qu' redmarrer votre service de WAMP ou phpMyAdmin afin que vos modifications de configurations puissent tres prises en compte.
-8Copyright 2008 - Samuel Sayag. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://php.developpez.com/cours/pma-tables-liees/
V - Conclusion
En guise de conclusion, nous allons vrifier la bonne configuration de phpMyAdmin sur trois des fonctionnalits installes : la cration d'une relation entre tables, l'enregistrement des requtes dans des signets, la cration de PDF. Il faut ajouter que malheuresement, dans phpMyAdmin, l'utilisation de ces nouvelles fonctionnalits peut se rvler un rien problmatique car parfois non totalement intuitive.
Figure 5. Fentre de conception graphique Plusieurs options sont votre disposition via des icnes. La troisime en partant de la gauche vous permet de crer une relation entre vos deux tables. 1 2 3 4 5 6 Cliquez dessus ; Une info bulle vous demande de pointer sur la cl de table rfrence ; Cliquez sur le champ cl primaire de la table pays ; Puis une info bulle vous demande de pointer sur la cl trangre ; Cliquez sur le champ id_pays de la table contact ; Vous devriez voir la fentre suivante :
-9Copyright 2008 - Samuel Sayag. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://php.developpez.com/cours/pma-tables-liees/
Figure 6. Cration de la relation Choissisez ON UPDATE -> CASCADE (si on change le pays d'un contact, l'identifiant rfrenant le pays doit lui aussi tre mi jour) et ON DELETE -> NO ACTION (nous ne voulons pas effacer un contact mme si son pays venait tre effac) et validez votre choix.
La relation entre les tables est dsormais effective (phpMyAdmin vous le confirme d'ailleurs par un message) et seule une erreur de conception peut a priori empcher qu'elle soit cre (le typage des deux champs lis doit tre cohrent par exemple, on ne lie pas un identifiant de type string un identifiant numrique). Si vous cliquez sur l'icne de PDF, cela ne produira rien si vous n'avez pas dj prpar le schma de votre page PDF (voir plus loin).
3 4
Cliquez sur "Excuter" ; Dans la mme fentre, tout en bas, on vous propose d'enregistrer la requte sous un nom et de valider votre choix :
- 10 Copyright 2008 - Samuel Sayag. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://php.developpez.com/cours/pma-tables-liees/
Figure 7. Enregistrement de la requte sous signet Faites-le puis, lorsque vous reviendrez dans l'onglet SQL aprs avoir effectu une autre tche, il vous sera possible de rappeler votre requte pour l'excuter, la modifier, la visualiser ou l'effacer :
Figure 8. Appel d'une requte enregistre sous signet . Une interface tout fait similaire est disponible sous l'onglet "Requte".
Voil c'est peu prs tout. Vous dcouvrirez facilement comment ajouter les commentaires aux tables et aux champs partir de l.
- 11 Copyright 2008 - Samuel Sayag. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://php.developpez.com/cours/pma-tables-liees/
- 12 Copyright 2008 - Samuel Sayag. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://php.developpez.com/cours/pma-tables-liees/