リレーション

phpMyAdmin では、MySQL ネイティブ (InnoDB) のメソッドを使用してリレーションシップ (外部キーのようなもの) を作成することができ、必要に応じて phpMyAdmin 専用の機能を使用することができます。リレーションシップを編集するには、 リレーションビュー とドラッグ&ドロップを行う デザイナー の2つの方法があります。

注釈

phpMyAdmin のリレーションのみを使用するには、 phpMyAdmin 環境保管領域 を設定しておく必要があります。

技術情報

今のところ、ネイティブでリレーションシップに対応している MySQL テーブル種別は InnoDB だけです。 InnoDB テーブルを使用する場合、 phpMyAdmin は実際の InnoDB リレーションを作成し、どのアプリケーションがデータベースにアクセスしても MySQL による強制が働きます。他のテーブル種別の場合、 phpMyAdmin は内部的にリレーションを強制しますが、他のアプリケーションには適用されません。

リレーションビュー

動作させるためには、まず [[pmadb|pmadb]] を適切に作成する必要があります。それが設定できたら、テーブルの [構造] ページを選択します。テーブルの定義の下には、 [リレーションビュー ] というリンクが表示されています。そのリンクをクリックすると、任意の (ほとんどの) フィールドに対して別のテーブルへのリンクを作成するためのページが表示されます。そこには主キーのみが表示されますので、参照しているフィールドが表示されていない場合は、おそらく何かうまくいっていません。下部のドロップダウンはレコードの名前として使用されるフィールドです。

リレーションビューの例

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

例えば、カテゴリとリンクがあり、1つのカテゴリに複数のリンクが含まれているとします。テーブル構造は次のようになります。

  • category.category_id (ユニークである必要がある)
  • category.name
  • link.link_id
  • link.category_id
  • link.uri.

link テーブルのリレーションビュー (テーブル構造の下) ページを開き、 category_id フィールドには、マスタレコードとして category.category_id を選択します。

今、リンクテーブルを参照すると、 category_id フィールドは、適切なカテゴリレコードへのクリック可能なハイパーリンクになります。しかし、表示されるのはカテゴリの名前ではなく、 category_id だけです。

_images/pma-relations-relation-name.png

これを修正するには、 category テーブルのリレーションビューを開き、下部のドロップダウンで「名前」を選択します。今、再びリンクテーブルを参照して、 category_id のハイパーリンクにマウスを合わせると、関連するカテゴリの値がツールチップとして表示されます。

_images/pma-relations-links.png

デザイナ

デザイナ機能は、 phpMyAdmin のリレーションをグラフィカルに作成、編集、表示する方法です。これらのリレーションは、 phpMyAdmin のリレーションビューで作成されたものと互換性があります。

この機能を使用するには、 phpMyAdmin 環境保管領域 を適切に設定し、 $cfg['Servers'][$i]['table_coords'] を設定する必要があります。

デザイナを使用するには、データベースの構造ページを選択し、 デザイナ タブを探してください。

ビューを PDF にエクスポートするには、最初に PDF ページを作成する必要があります。デザイナは、テーブルがどのように表示されるか、レイアウトを作成します。最終的にビューをエクスポートするには、 PDF ページでこれを作成し、デザイナで作成したレイアウトを選択する必要があります。