リレーション¶
phpMyAdmin では、MySQL ネイティブ (InnoDB) のメソッドを使用してリレーションシップ (外部キーのようなもの) を作成することができ、必要に応じて phpMyAdmin 専用の機能を使用することができます。リレーションシップを編集するには、 リレーションビュー とドラッグ&ドロップを行う デザイナー の2つの方法があります。
注釈
phpMyAdmin のリレーションのみを使用するには、 phpMyAdmin 環境保管領域 を設定しておく必要があります。
技術情報¶
今のところ、ネイティブでリレーションシップに対応している MySQL テーブル種別は InnoDB だけです。 InnoDB テーブルを使用する場合、 phpMyAdmin は実際の InnoDB リレーションを作成し、どのアプリケーションがデータベースにアクセスしても MySQL による強制が働きます。他のテーブル種別の場合、 phpMyAdmin は内部的にリレーションを強制しますが、他のアプリケーションには適用されません。
リレーションビュー¶
動作させるためには、まず [[pmadb|pmadb]] を適切に作成する必要があります。それが設定できたら、テーブルの [構造] ページを選択します。テーブルの定義の下には、 [リレーションビュー ] というリンクが表示されています。そのリンクをクリックすると、任意の (ほとんどの) フィールドに対して別のテーブルへのリンクを作成するためのページが表示されます。そこには主キーのみが表示されますので、参照しているフィールドが表示されていない場合は、おそらく何かうまくいっていません。下部のドロップダウンはレコードの名前として使用されるフィールドです。
リレーションビューの例¶


例えば、カテゴリとリンクがあり、1つのカテゴリに複数のリンクが含まれているとします。テーブル構造は次のようになります。
- category.category_id (ユニークである必要がある)
- category.name
- link.link_id
- link.category_id
- link.uri.
link テーブルのリレーションビュー (テーブル構造の下) ページを開き、 category_id フィールドには、マスタレコードとして category.category_id を選択します。
今、リンクテーブルを参照すると、 category_id フィールドは、適切なカテゴリレコードへのクリック可能なハイパーリンクになります。しかし、表示されるのはカテゴリの名前ではなく、 category_id だけです。

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

デザイナ¶
デザイナ機能は、 phpMyAdmin のリレーションをグラフィカルに作成、編集、表示する方法です。これらのリレーションは、 phpMyAdmin のリレーションビューで作成されたものと互換性があります。
この機能を使用するには、 phpMyAdmin 環境保管領域 を適切に設定し、 $cfg['Servers'][$i]['table_coords']
を設定する必要があります。
デザイナを使用するには、データベースの構造ページを選択し、 デザイナ タブを探してください。
ビューを PDF にエクスポートするには、最初に PDF ページを作成する必要があります。デザイナは、テーブルがどのように表示されるか、レイアウトを作成します。最終的にビューをエクスポートするには、 PDF ページでこれを作成し、デザイナで作成したレイアウトを選択する必要があります。