連載
» 2014年11月12日 16時33分 公開

連載:カンタンWebアプリ開発ツール「Forguncy」の実力を探る:第3回 テーブルを作ってみよう(2) (2/4)

[かわさきしんじ,著]

テーブルの関連付け

 ここでは、内線番号表の部署を別のテーブルで管理することにしよう。このテーブルの名前を「部署名表」とする。そして、「内線番号表」テーブルと「部署名表」テーブルに関連を持たせる。

「内線番号表」テーブルと「部署名表」テーブル 「内線番号表」テーブルと「部署名表」テーブル

 関連を持たせるというのは、一方のテーブルから他方のテーブルのフィールドを参照するということだ。上の「内線番号表」テーブルでは、これまで「テキスト」を格納していた「部署」フィールドが整数を格納する「部署ID」フィールドとなっている。そして、この部署IDが「部署名表」テーブルのIDを参照するわけだ。このようにすることで、テーブルに含まれるデータの管理が容易になる。内線番号表程度ではたいしたことではないが、多くのデータを扱うときには考慮すべきだ。

 以下が実際に作成した「内線番号表」テーブルと「部署名表」テーブルだ。「内線番号表」テーブルの「部署ID」フィールドが「Insider .NET編集部」などのテキストではなく、「部署名表」テーブルの該当するレコードのIDと合致していることに注意されたい。

作成した「内線番号表」テーブル
作成した「部署名表」テーブル 作成した「内線番号表」テーブル(上)と「部署名表」テーブル(下)

 この2つのテーブルを関連付けるにはいくつかの方法がある。1つはナビゲーションウィンドウを使うものだ。この場合は、ナビゲーションウィンドウで関連付けるフィールドを右クリックして、コンテキストメニューから[テーブルの関連付けを設定]を選択する。

関連付けるフィールドを右クリックして、コンテキストメニューから[テーブルの関連付けを設定]を選択
関連付けるフィールドを右クリックして、コンテキストメニューから[テーブルの関連付けを設定]を選択
[対象テーブル]と[対象フィールド]を設定する
[対象テーブル]と[対象フィールド]を設定する

ナビゲーションウィンドウによるテーブルの関連付け


 ここでは[内線番号表]テーブルの「部署ID」を右クリックしてコンテキストメニューから[テーブルの関連付けを設定]を選択している。すると[参照するフィールドの設定]ダイアログが表示されるので、[対象テーブル]ドロップダウンから[部署名表]を、[対象フィールド]には[ID]を選択する。最後に[OK]ボタンをクリックすれば、関連付けが完了する。関連付けを行うと、ナビゲーションウィンドウの「部署」フィールドには右向きの三角形が表示される。これを展開すると、「部署名表」テーブルのフィールドが表示され、関連付けが行われたことが分かる。

関連付けが行われたフィールドには、参照先のテーブルの情報が表示される 関連付けが行われたフィールドには、参照先のテーブルの情報が表示される
関連付けたフィールドには三角形が表示される。これをクリックすると、参照先のフィールドが展開表示される。

 このようにして関連付けたフィールドは、その後、ページでセルやリストビューにドラッグ&ドロップできる。フィールドに関連付けを設定した場合、ページでは「->」を使ってそのことが示される。

ナビゲーションウィンドウから[部署ID]−[部署]をリストビューにドラッグ&ドロップしているところ
ナビゲーションウィンドウから[部署ID]−[部署]をリストビューにドラッグ&ドロップしているところ
関連付けたフィールドのドラッグ&ドロップ 関連付けたフィールドのドラッグ&ドロップ
ここではサンプルとしてリストビューを配置し、その行テンプレートに[部署ID]−[部署]フィールドをドラッグ&ドロップしている。

 関連付けを解除するには、そのフィールドを右クリックして、コンテキストメニューから[テーブルの関連付けを解除]を選択すればよい。

 関連付けを行うもう1つの方法は、右ペインの[データ連結]タブを使うことだ。以下に例を示す。

リストビューの[部署]欄に対して、[データ連結]タブでフィールドの関連付けを設定(関連付け前) リストビューの[部署]欄に対して、[データ連結]タブでフィールドの関連付けを設定(関連付け前)

 ここでもリストビューに設定した部署カラムに表示するフィールドの設定を行っている。このとき、[データ連結]タブでは[データソース]に[内線番号表]を、[連結フィールド名]に[部署ID]を選択しているが、データソースである「内線番号表」テーブルの[部署ID]フィールドに格納されるのは整数だ。これをそのまま実行すると、以下のような画面になる。

フィールドの関連付けを行っていない場合の実行画面 フィールドの関連付けを行っていない場合の実行画面
中央のカラムのヘッダーには「部署ID」が、そしてその下には整数値が表示されている。

 そこで、このフィールドと「部署名表」テーブルの「ID」との連結を行う。これには[データ連結]タブで[このフィールドに対して関連付けを設定]チェックボックスをオンにする。すると、関連付けを行うテーブルとそのフィールド、表示するフィールドを設定する項目が表示されるので、これを設定すればよい。

[データ連結]タブでのフィールド(テーブル)の関連付け [データ連結]タブでのフィールド(テーブル)の関連付け

 この方法で関連付けを行った場合も、ナビゲーションウィンドウでは先ほどと同様に、「部署」フィールドの隣に右向きの三角形が表示され、関連付けが行われたことが分かるようになっている。フィールドに関連付けを設定した場合、ページでは「->」を使ってそのことが示されるのも先ほどと同様だ。

 上記いずれかの方法で関連付けを行うと、その実行画面は次のようになる。

フィールドの関連付けを行った後の実行画面 フィールドの関連付けを行った後の実行画面
中央のカラムの表示が「部署」になり、そのカラムに部署名が表示されるようになった。

 次にこのような関係を持った2つのテーブルを生成する方法を見てみよう。

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。