JBI オンラインスタディR [リレーション]
【ながにぃ式リレーション実践編】
仕組みの理解
◆ サンプルファイルのダウンロード
まず、本セッション以降で使用するサンプルファイルをダウンロードして、ファイルを開いてください。(*ご利用のパソコンが Mac でファイル名が化けた場合は手でファイル名を変更してください。)
「購入記録.fmp12」をダウンロード (※ダウンロードのためのお申込みはこちら)
「購入記録」と「販売会社」をご自身の構想するデータベースと頭の中で置き換えながら実践するのも良いと思います。
◆ 実際にリレーションしてみる
ここでは仕組みを理解するためのリレーションを組んでみます。ここでのリレーション方法は、最もシンプルな反面、運用では難が出る可能性がある方法です。(なので、実際の制作では後の「ながにぃ式リレーション」の方法を使います。)
まずは購入記録テーブルにフィールドを1つ作成します。「販売会社ID_外部キー」という名称にしておきます。タイプは数字タイプです。
「販売会社」というフィールドは不要になるので削除してOKです。(上の画像では後で削除する目印として頭にエックス「x」を付けてリネームしています。今は念のため残して追って削除する目印として分かり易い方法かと思います。)
次に「リレーションシップ」タブを開きます。
購入記録 TO の下部にある「▼」をクリックすると、フィールド一覧をスクロールできます。「販売会社ID_外部キー」が見えるところまで下にスクロールします。
「販売会社ID_外部キー」のフィールド名をドラッグして、販売会社テーブルの「販売会社ID」に重ね合わせます。フィールド名からフィールド名にドラッグするだけでリレーションができます。
下図のようになっていますでしょうか。販売会社ID 同士が繋がり、繋がった紐 (?) の真ん中が「=」になっていればOKです。
「OK」を押して設定ウインドウを閉じます。これでリレーション自体の設定はできました。
次に、リレーションを使ってデータの一元管理の具合を見ていきたいと思います。
◆ 購入記録に販売会社名を表示させてみる
では、販売会社ID を入力 すると販売会社名が表示される、ということをやってみます。
「購入記録_リスト形式」レイアウトを使います。リスト形式を使う方が最初は分かりやすいと思うからです。レイアウトモードで少しレイアウトを修正します。
「販売会社」フィールドがレイアウト上に残っている場合は、レイアウト上から除去します。(Delete キーまたは Backspace キー)
その位置に、「販売会社ID_外部キー」を配置します。
その隣りの位置に、リレーション先である販売会社テーブルの「販売会社名」を配置します。
配置の方法です。
左側のフィールド一覧上部にある「現在のテーブル(「購入記録」)▽」プルダウンから、関連テーブルにある「販売会社」を選択します。(先ほどリレーション設定して関連されているので「関連テーブル」の所にあります。)
「::販売会社名」フィールドを、「販売会社ID_外部キー」の右隣りにドラッグして配置します。別のテーブルの情報だと分かるように今だけ色を付けておくと良いです。(薄めの色でOK)
ここまでできましたか?
できたらブラウズモードにして、実際にデータを入力してみます。
「101」と販売会社ID_外部キーに入力します。
フィールド内容が確定されると(カーソルが外れると)、販売会社名が自動的に表示されるのが分かります。
この例では、購入記録の側で販売会社ID_外部キーだけ持っていれば、フィールドを作ることなく販売会社テーブルの情報を参照することができる、ということを行っています。
このように、リレーションをすることで ID に関連したレコードのデータを表示させたり計算させたりできます。
練習がてら、いくつか適当に ID を入れてみてください。
リレーションが成立すれば(ID が一致すれば)、リレーション先のテーブルのどのフィールドでも表示させることができます。
具体的にやってみます。レイアウトモードにします。
レイアウトの幅を少し拡げて、「メール」フィールドを配置してみてください。(レイアウトの幅がせまいときは、マウスで右側のグレーのエリアとの境界線をつかんでドラッグすれば拡げられます)
フィールド一覧上部jのプルダウンで「販売会社」を選択すれば「メール」フィールドが一覧に出てきます。
「販売会社ID_外部キー」に ID が入力されると、「販売会社」テーブルの同じ「販売会社ID」があれば(一致するものがあれば)リレーションが成立します(紐づく・関連する)。
関連されれば、「販売会社」テーブル内のフィールドをどれでも表示できます。(「販売会社ID」に該当の ID がなければリレーションが不成立となり、何も表示されません。)
※「販売会社」テーブルには 105, 106 という販売会社ID は存在しない。
✻ ここまで大丈夫でしょうか? 疑問点・不明点があれば Q&A セミナーにリクエストください。
◆ リレーションがどういうことかを深掘りしてみる
もう少しリレーションがどういう仕組みになっているかを深掘りしてみます。
購入記録と販売会社のデータを横並びにして、データの動きを見てみたいと思います。
メニューバー「ウインドウ > 新規ウインドウ」でもう一つウインドウを開きます。
左に購入記録のレイアウト(購入記録テーブル)、右に販売会社のレイアウト(販売会社テーブル)を並べます。(販売会社のレイアウトは分かりやすいように表形式にしています。)
リレーションは、双方向からアプローチできる状態になります。それを実際に体感してみます。
◆ レイアウトの TO とは別のテーブルフィールドの識別
既にお気づきかも知れませんが、レイアウトの TO とは別のテーブル(TO)のフィールドには「::」(コロンが2つ)頭に付きます。
このページは以上になります。続きは次のセクションにて。
ここまでお疲れ様でした!
✻ 本スタディは以上となります。ここまでだけでも何かお役に立てていたら幸いです。
✻ 本スタディで不明な点や質問が出た場合は、Q&Aセミナーのリクエストをお送りください。