4D v14.3リレーションについて |
||||||||||||||||||||||||||||||||||||||||||||||
|
4D v14.3
リレーションについて
リレーションについて
この章のコマンド、特にRELATE ONEとRELATE MANYは自動リレートおよび自動でないリレートを設定、管理するものです。この章のコマンドを使用する前に、テーブル間のリレートの作成について4D Design Referenceマニュアルを参照してください。 2つのテーブルは自動リレートで関連付けることができます。一般的にテーブルの自動リレートは、リレート先テーブルのレコードをロード、または選択するために使用します。リレートを使用することで多くの処理を実行することができます。 以下のような処理が含まれます:
性能を最大限に引き出すために、4Dは1レコードがテーブルのカレントレコードになる場合にのみ自動リレーションを実行します。上記のリストに示した各操作を行ったときに、以下の原則に従って、リレートレコードがロードされます:
以下の図のテーブルストラクチャを例にとってみましょう。[Employees]テーブルをデータ入力のためにロードした場合は、[Companies]テーブルからリレート先レコードが選択され、ロードされます。同様に[Companies]テーブルをロードしてデータ入力用に表示した場合には、[Employees]テーブルから関連するレコードが選択されます。 上図において、[Employees]テーブルはnテーブルとして参照され、[Companies]テーブルは1テーブルとして参照されます。これを解かりやすくするために、多くの人が1つの会社に関連しており、各会社には多くの人がいると考えてください。 同様に[Employees]Companyフィールドはnフィールドとして参照され、[Companies]Nameフィールドは1フィールドとして参照されます。 リレートフィールドが、いつもユニーク(重複しない)とは限りません。例えば、[Companies]Nameフィールドは同じ値を含んだ会社のレコードをいくつも持っているかもしれません。こういう場合は、常にユニークであるリレート先テーブルの別のフィールドでリレート作成することにより、簡単に処理することができます。このようなフィールドの例として、会社IDフィールドがあります。 以下の表に掲げたコマンドは、コマンドの実行中にリレート先のリレートレコードをロードするために自動リレートを使用します。これらのコマンドはすべてn対1の自動リレートを使用します。1対nの欄が○になっているコマンドのみが自動の1対nリレートに対応します。
自動リレートとは、コマンドがレコードをロードするたびに、そのテーブルに関連する1つまたは複数のレコードを自動的に選択するという意味ではありません。レコードをロードするコマンドを使用した後で、リレート先データにアクセスする必要がある場合、RELATE ONEやRELATE MANYを使用して、リレート先レコードを明示的に選択することが必要なケースもあります。 前ぺ-ジの表に掲げたコマンドの一部(QUERYコマンド等)は、処理の終了後にカレントレコードをロードします。この場合、ロードされたレコードは、リレート先の関連するレコードを自動的には選択しません。ここでも、リレート先データにアクセスする必要がある場合、RELATE ONEやRELATE MANYを使用してリレート先レコードを明示的に選択する必要があります。 |
プロパティ
プロダクト: 4D 参照
CREATE RELATED ONE ARTICLE USAGE
ランゲージリファレンス ( 4D v12.4) |
||||||||||||||||||||||||||||||||||||||||||||