複数条件リレーションシップ

複数条件リレーションシップでは、照合フィールドの数を増やします。これにより、FileMaker Pro が関連レコードを正しく連結する前に評価する条件を増やします。リレーションシップの各テーブルの各照合フィールドの値は、フィールドが表示されている順に比較されます。これは AND 比較演算で、正しく一致するには、すべての照合フィールドに対して、他方のテーブルの同じレコードに対応する値が存在する必要があります。

複数条件リレーションシップを示す線で 4 つのフィールドがつながれた 2 つのテーブル

このリレーションシップを定義する条件は次のとおりです:

テーブル

フィールド名

コメント

テーブル A

テキストフィールド A

テキストフィールド B と数字フィールド B に対する照合フィールド

 

数字フィールド A

テキストフィールド B と数字フィールド B に対する照合フィールド

テーブル B

テキストフィールド B

テキストフィールド A と数字フィールド A に対する照合フィールド

 

数字フィールド B

テキストフィールド A と数字フィールド A に対する照合フィールド

このリレーションシップの条件に従うと、テーブル A のあるレコードにおいて、テキストフィールド A の値が「青」、数字フィールド A の値が「123」の場合、このレコードは、テーブル B の、テキストフィールド B と数字フィールド B の値がそれぞれ「青」と「123」であるレコードにのみ一致します。テキストフィールド A とテキストフィールド B の値が一致しても、数字フィールド A と数字フィールド B の値が一致しなければ、このリレーションシップで関連レコードは返されません。

テーブル

レコード番号

フィールド名

関連レコードか?

テーブル A

1

テキストフィールド A
数字フィールド A


123

はい

 

2

テキストフィールド A
数字フィールド A


456

いいえ

 

3

テキストフィールド A
数字フィールド A


123

いいえ

テーブル B

1

テキストフィールド B
数字フィールド B


123

はい

 

2

テキストフィールド B
数字フィールド B


123

いいえ

 

3

テキストフィールド B
数字フィールド B


123

はい

複数条件リレーションシップの作成

この例では、次の 3 つのテーブルを持つデータベースを使用して複数条件リレーションシップを作成します:

  • 「機材」テーブル。レンタル機材の在庫を保存します。
  • 「顧客」テーブル。顧客の名前と住所を保存します。
  • 「ケータリングライン項目」テーブル。機材のレンタルに関するレコード (機材 ID、顧客 ID、およびイベント日を含む) を保存します。

このデータベースは機材のレンタルを管理して、特定の日における特定の顧客のレンタルをすべて表示します。

  1. 「顧客」テーブルと「ケータリングライン項目」テーブルの間に複数条件リレーションシップが成立しています。次のフィールドを持つ次のテーブルを作成します:
  2. テーブル

    フィールド名

    コメント

    顧客

    顧客 ID

    シリアル番号の自動入力が設定された数字フィールド。「ケータリングライン項目」テーブルに対する照合フィールドの 1 つです。

     

    イベント日

    日付フィールド。「ケータリングライン項目」テーブルに対するもう 1 つの照合フィールドです。

    ケータリングライン項目

    顧客 ID

    数字フィールド。「顧客」テーブルに対する照合フィールドの 1 つです。

     

    イベント日

    日付フィールド。「顧客」テーブルに対するもう 1 つの照合フィールドです。

     

    機材 ID

    数字フィールド

  3. [リレーションシップ編集] ダイアログボックスで、「顧客」テーブルと「ケータリングライン項目」テーブル間のリレーションシップの照合フィールドとして「顧客 ID」と「イベント日」を定義します。
  4. 「顧客」テーブルで、「顧客 ID」フィールドにシリアル番号の自動入力を設定すると、「顧客」テーブルの各レコードには固有な ID 番号が付けられます。
  5. 「ケータリングライン項目」テーブルで、[このリレーションシップを使用してこのテーブルでのレコードの作成を許可] を選択します。

    テーブルはリレーションシップグラフで次のように表されます:

  6.  

    「顧客」テーブルと「ケータリングライン項目」テーブルの間の複数条件リレーションシップ

  7. 「顧客」レイアウトにポータルを追加して、「顧客::機材 ID」フィールドをポータルに追加します。

新しい関連レコードを作成するには、「顧客:: イベント日」フィールドに現在の日付を入力して、「顧客」レイアウトのポータルに機材 ID 番号を入力します。

「イベント日」フィールドは照合フィールドになっており、このリレーションシップでは「ケータリングライン項目」テーブルへの関連レコードの作成が許可されているので、「顧客::イベント日」の値が「ケータリングライン項目::イベント日」フィールドに自動的に入力されます。

過去の日付のケータリングを表示する場合は、「顧客::イベント日」の値を変更すると、同じ顧客 ID とイベント日が入力されている関連レコードがすべて表示されます。