Relations

phpMyAdmin permet des relations (similaires aux clés étrangères) en utilisant les méthodes natives de MySQL (InnoDB) quand c’est possible, sinon avec les fonctions spéciales de phpMyAdmin quand nécessaire. Il existe deux façons d’éditer ces relations, avec la Vue relationnelle et avec le Concepteur par glissé-déposé. Elles sont expliquées sur cette page.

Note

Il faut avoir configuré les Configuration de stockage de phpMyAdmin pour utiliser les relations seules de phpMyAdmin.

Infos techniques

Actuellement le seul type de table MySQL prenant en charge les relations est InnoDB. Avec une table InnoDB, phpMyAdmin va créer de véritables relations InnoDB qui seront imposées par MySQL quelque soit l’application accédant à la base de données. Dans tous les autres cas de tables, phpMyAdmin imposera les relations de manière interne, ces relations ne s’appliquant pas aux autres applications.

Vue relationnelle

Pour que cela fonctionne, il faut d’abord correctement créer [[pmadb|pmadb]]. Une fois fait, sélectionner une page de « Structure » de table. Sous la définition de table, un lien nommé « Vue relationnelle » est affiché . En cliquant sur ce lien, la page affichée offrira la possibilité de créer un lien vers une autre table pour n’importe quel champ (la plupart). Seules les CLÉS PRIMAIRES y sont affichées, ce qui fait que si le champ relié n’est pas affiché, c’est que quelque chose ne va pas. Le menu déroulant en bas est le champ qui va être utilisé comme le nom pour un enregistrement.

Exemple de vue relationnelle

_images/pma-relations-relation-view-link.png _images/pma-relations-relation-link.png

Admettons qu’il y ait des catégories et des liens, et qu’une catégorie puisse contenir plusieurs liens. La structure de la table devrait ressembler à :

  • category.category_id (doit être unique)
  • category.name
  • link.link_id
  • link.category_id
  • link.uri.

Ouvrir la page de vue relationnelle (sous la structure de table) pour la table link et pour le champ category_id, en sélectionnant category.category_id comme enregistrement maître.

En suivant le lien de table, le champ category_id sera un hyperlien cliquable vers l’enregistrement de catégorie correct. Mais tout ce qui est affiché est seulement category_id, pas le nom de la catégorie.

_images/pma-relations-relation-name.png

Pour corriger cela, ouvrir la vue relationnelle de la table category et dans le menu déroulant en bas, sélectionner « nom ». En suivant de nouveau le lien de table et en passant la souris sur l’hyperlien category_id, la valeur de la catégorie reliée sera maintenant affichée contextuellement.

_images/pma-relations-links.png

Concepteur

La fonctionnalité Concepteur est une façon graphique de créer, éditer et afficher les relations de phpMyAdmin. Ces relations sont compatibles avec celles créées dans la vue relationnelle de phpMyAdmin.

Pour utiliser cette fonctionnalité, il faut que Configuration de stockage de phpMyAdmin et $cfg['Servers'][$i]['table_coords'] soit correctement configurés.

Pour utiliser le Concepteur, sélectionner une page de structure de base de données et chercher l’onglet Concepteur.

Pour exporter la vue en PDF, il faut d’abord créer les pages PDF. Le Concepteur crée l’agencement, c’est à dire comment les pages devraient être affichées. Pour finalement exporter la vue, il faut la créer avec une page et sélectionner un agencement créé avec le Concepteur.