SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

FileMaker Pro 実践チュートリアル

FileMaker Pro におけるリレーション機能の活用

第4回 FileMakerで簡単なリレーショナルデータベースを作成してみる


  • このエントリーをはてなブックマークに追加

FileMaker Proのリレーションシップグラフについて

 機能の追加の前に、リレーションについての概略を見てみましょう。

 [ファイル]-[管理]-[データベース]を選択してください。「ReportMaker」のデータベースの管理というダイアログが表示されます。[テーブル]タブでは、そのファイル内で利用するテーブルの一覧が確認できます。

 

 この中で注意して欲しいのは、「ソース」欄と 「グラフ内のテーブル名」です。FileMaker Pro 9からは外部データソースをテーブルとして扱えるようになったため、「ソース」欄にFileMakerのテーブルなのか、外部SQLデータソースなのかが表示されます。

 一番右端の「グラフ内のテーブル名」については、リレーションシップグラフで詳しく説明します。

 また、この画面は開発者向けのFileMaker Advancedの管理画面なので、画面の右下に[コピー]や[貼り付け]というボタンが存在します。このボタンはご想像通り、テーブルごとコピーして他のファイルに貼り付ける場合などに使用します。通常のPro版ではこの機能がついていないので注意してください。

 真ん中の[フィールド]タブは、前回出てきたフィールド定義の画面です。一番右の[リレーションシップグラフ]タブが今回の肝となる「リレーションシップグラフ」の設定画面となります。

 

 上図は、現在のファイルの「リレーションシップグラフ」でテーブル間の関連を表したものです。見出のついた四角い箱状のものが、「テーブルの仮想表」です。FileMaker Proでは、この「リレーションシップグラフ」上に「テーブルの仮想表」として配置されていないテーブルについては、そのテーブルに定義されたフィールドをレイアウト上に配置することすらできません。 前回、レイアウト上にフィールドを配置できたのは、FileMaker Proがテーブルと同名称の「テーブルの仮想表」をテーブル作成時にリレーションシップグラフ上に自動的に配置してくれたからでした(FileMaker Proは新規でテーブルを作成すると、自動で「テーブルの仮想表」を作成してくれます)。

 現在用意されているレイアウトと「テーブルの仮想表」の関係は、以下の表を参照してください。

レイアウト名 仮想表名(TO名)
顧客詳細 clients
案件詳細 projects
社員詳細 staff
報告書詳細 reports

 ところで、「テーブルの仮想表」という言葉はFileMaker Pro 9のヘルプに登場する言葉ですが、英語では「Table Occurrence」と呼ばれています。 FileMaker開発者の間では「TO」と短縮して呼ぶことがあります。また、「テーブルの仮想表」をグループとして扱うことがありますが、そのグループを指して、「Table Occurrence Group」、略して「TOG」と呼んでいます。この連載でも同様に「TO」「TOG」として表記します。

 clients TOとpersons TOの間にある「=」は、clients TOの「ID」とpersons TOの「clientKey」が一致した場合にリレーションが成立することを表しています。

 persons TOに接続しているコネクタがいわゆる「カラスの足跡」になっているのは、このリレーションを通して、1clientsレコードに複数のpersonsレコードが関連付けられる場合の表示です。一方、clients TOの方がただの直線になっているのは、IDに対してシリアル番号が自動入力されるようにフィールド定義の自動入力値の設定として、定義されているからです(ユニーク値の制限が設定されていなくても、この表示になります。気をつけてください)。

 

 引き続き、TO間でのリレーション設定を見てみましょう。clients TOとpersons TOの間にある「=」をダブルクリックします。「リレーションシップの編集」というダイアログが表示されます。

 

 左側がclients TOのフィールドリスト、右側がpersons TOのフィールドリストです。clients TOのリレーションキーとして「ID」フィールドが、persons TOのリレーションキーとして「clinetKey」フィールドが指定されてます。FileMaker Proではリレーションを成立させる条件として、一致の他に以上、以下、一致しない、すべて一致などを選択することができます。また、リレーションの条件もこの画面上で、複数設定することが可能です。

 画面下部に視線を移動すると、リレーションについての設定項目があります。

 一番上の[このリレーションシップを使用して、このテーブルの作成を許可]という設定がpersons TOのほうでチェックされています。これは、のちほど説明する「ポータル」での新規レコードの作成に必要な設定です。

 次の[他のテーブルでレコードが削除された時、このテーブルの関連レコードを削除]は、例えばclientsのレコードを削除したときに、そこに関連付けられているpersonsのレコードも併せて削除するために必要な設定です。

 最後の[レコードのソート]は、関連レコードを表示するときに、指定した順でソートされている必要がある場合などに設定します。当然、該当するレコード全部に対してソート処理が実行されるので、レコード数などを考慮して設定してください。

 [OK]をクリックすると画面が閉じます。何か設定を追加したり、変更した場合は、[キャンセル]ボタンもアクティブになります。キャンセルすると直前に設定した内容が消えてしまいますので注意してください。

次のページ
機能追加の下準備

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
FileMaker Pro 実践チュートリアル連載記事一覧

もっと読む

この記事の著者

今泉 みゆき(イマイズミ ミユキ)

秘書 兼 仕入事務 兼 営業担当という自分の業務を楽にするためにツールとして選んだファイルメーカーPro 3.0の魅力にとりつかれ、開発者として独立。2006年5月より、ぴかいち有限会社にてシステム開発全般に携わっている。FileMaker開発者向けの情報発信サイト「Knockin' on Seven's Door」のメンバーとして、月1銀座のAppleStoreに出没中。FileMaker 8 認定デベロッパ。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/1923 2008/09/04 13:16

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング