関連フィールドの配置場所の決定
• レイアウトに直接配置した場合:関連フィールドをレイアウトに直接配置すると、リレーションシップの条件に一致する関連レコードが複数ある場合でも、最初の関連レコードのデータだけが表示されます。(この場合、リレーションシップでソート優先順位が指定されているかどうかによって、表示される最初の関連レコードが異なります。)
• ポータルに配置した場合:関連フィールドをレイアウト上のポータルに配置すると、リレーションシップの条件に一致するすべての関連レコードのデータが表示されます。
• 「顧客」データベースのデータを表示する請求書に、顧客番号や連絡先情報などを表示する関連フィールドを配置する。この場合の照合フィールドは、「顧客番号」フィールドです。 「顧客」データベースには、それぞれの顧客番号に対応するレコードは1つずつしか存在しないため、請求書の各関連フィールドには、その顧客のデータが表示されます。
• 「受注履歴」データベース内の「受注日」フィールドの最新の日付を表示する関連フィールドを請求書に配置する。この場合も、照合フィールドは「顧客番号」フィールドです。 顧客が複数回発注した場合は、その顧客の顧客番号と一致するレコードが「受注履歴」データベースに複数存在します。 リレーションシップを定義するときに、「受注日」フィールドにソート順を定義しておけば、レイアウトに直接配置された(ポータル内ではなく)関連レコードに最新の受注日が表示されます。
• 受注した各品目のデータ(製品 ID、製品名、単価など)を表示する関連フィールドを請求書に配置する。この場合の照合フィールドは「受注 ID」です。 ほとんどの場合、請求書には複数の製品が記載されるため、複数の関連レコードを表示できるようにポータルを作成します。ポータル内の各行には、1つの関連レコードとともに、「明細」データベースから選択した関連フィールドが表示されます。ポータルに関連フィールドを配置する場合、表示する関連データは、ポータルのテーブル内のレコード、またはレイアウトのテーブル内のレコードのいずれかを起点として評価されます。どちらを起点とするかによってフィールドに表示される関連データが変わるため、これは非常に重要です。どちらの開始点を使用するかは、リレーションシップグラフの2つのテーブル間のリレーションシップのパスに基づいて決定されます。レイアウトのテーブルからフィールドのテーブルへのリレーションシップのパスにポータルのテーブルが含まれる場合は、ポータルのテーブル内のレコードが開始点になります。それ以外の場合は、レイアウトのテーブル内のレコードが起点になります。たとえば、次のリレーションシップグラフは、学校の在籍者データベースを示しています。このデータベースは、教師、クラス、および学生のテーブルと、各クラスにどの生徒が登録しているかを示す登録テーブルで構成されます。また、教職員から顧問を各学生に割り当てる顧問テーブル(教師のテーブルオカレンス)もあります。あるクラスに登録している学生を表示する次のようなレイアウトを検討します。このレイアウトのテーブルは「クラス」で、ポータルのテーブルは「学生」です。次の表は、このポータルに配置されている、異なるテーブルからの4つのフィールドの起点がどのように決定されるかを示します。
配置されているフィールド レイアウトのテーブルからフィールドのテーブルへのパス パスにポータルのテーブルが含まれるかどうか 学生テーブルの
氏名フィールド ポータルのレコード 配置されているフィールドは、ポータルのテーブルのものです(非常に一般的な方法)。フィールドには、登録済みの学生がポータルの各行に表示されます。 顧問テーブルの
氏名フィールド クラス - 登録 -
学生 - 顧問 ポータルのレコード 配置されているフィールドには、各学生の顧問がポータルの各行に表示されます。 教師テーブルの
氏名フィールド レイアウトのレコード 配置されているフィールドには、各学生に対して関連する最初の教師の値ではなく、クラスの教師がポータルの各行に繰り返されます。 クラステーブルのクラス名フィールド レイアウトのレコード 配置されているフィールドは、レイアウトのテーブルのものです(一般的ではない方法)。フィールドでは、クラス名がポータルの各行で繰り返されます。 これは、レイアウトのポータル外に「クラス名」フィールドが含まれる場合は、重複することになります。FileMaker Pro では、ポータルに配置されているフィールドに加え、次の方法も使用してポータル内のフィールドへの他の参照に対する起点が決定されます。
• 計算式:ポータルがアクティブなときにスクリプトの計算式がフィールドを参照する場合。通常、表示する正しい関連データは FileMaker Pro によって決定されます。ただし、他のテーブルとリレーションシップが含まれるようにリレーションシップグラフを変更してから、ポータルで参照される関連フィールドを変更すると、起点を変更することができます。