リレーションは常にNテーブルから1テーブルに向けて描画します。
リレートされるフィールドは同じか互換性のある型でなければなりません。以下のフィールド型を主キーおよび外部キーフィールドとして使用できます:
- 文字列 (文字およびテキスト)
- 数値 (実数, 整数, 倍長整数, 64ビット整数, またはフロート)
- 時間
- ブール
- 日付
主キーには通常インデックスを設定します (必須ではありません)。リレーションプロパティは インスペクターパレット 、または特定の項目についてはリーレーションを右クリックして表示されるコンテキストメニューから設定できます。

定義エリアには外部キーと主キーフィールドが表示されます。
- 開始: “開始”フィールドにはこのリレーションのNテーブルの外部キーが表示されます。コンテキストメニュー中でこのフィールドはNフィールドと呼ばれます。
- 1フィールド: “1フィールド”には1テーブルの主キーフィールドが表示されます。コンテキストメニュー中でもこのフィールドは“1フィールド”と呼ばれます。
リレーションはNテーブルの外部キーから1テーブルの主キーに向かって描画します。 - カラー: このポップアップメニューを使用して、ストラクチャーエディターに表示されるリレーションの線のカラーを設定できます。リレーションのカラーはプロパティーとはリンクされていません。
このカラーはリレーションのコンテキストメニューを使用して設定することもできます。
1対Nオプションは逆方向の自動リレーションを制御します。
- 名前: 1対Nリレーションの名前を入力するエリア (任意)。
注: 4D Mobileリンクの一部として、この名前はWakanda側のモデル内で対応したリレーショナル属性を作成するために使用されます(詳細は4D Mobile マニュアルのリレーションの使用 を参照して下さい)。この場合、JavsScript のルールに従った名前を使用する必要があります。 - 手動/自動: このメニューで、1テーブルからNテーブルへリンクされたリレーションの動作モードを設定します。自動オプションを選択すると、自動機能が有効になりま す。例えばアプリケーションモードで[Company]テーブルのレコードが開かれると、自動で対応する[Employees]テーブルのレコードもロードされます。この設定では会社で働く従業員をサブフォームに4Dが自動で表示します。
デフォルトでは手動オプションが選択されています (自動動作なし)。この点に関する詳細は自動およびマニュアルリレーションを参照してください。リレーションのコンテキストメニューを使用して自動1対Nリレーションを設定することもできます。 - サブフォームにリレート値を自動代入する: このオプションを使用すると、データ入力中に、Nテーブルの外部キーフィールドに1テーブルの主キーの値を自動で代入させられます。このオプションは1対Nリレーションで自動オプションが選択されている場合にのみ利用価値があります。
このオプションは、リレートしたNテーブルのサブフォームを持つ1テーブルの詳細フォームでデータを入力する際に影響があります (サブフォームについてはサブフォームとウィジェットを参照)。 サブフォームにリレート値を自動代入するが選択されていると、ユーザーがサブフォームにレコードを追加する際に、リレート値がNテーブルの外部キーフィールドに自動で代入されます。
[Company]と[Employees]テーブルのリレーションにおいて、[Company]テーブルが1テーブルであり[Employees]はリレートしたNテーブルです。各会社毎に[Company]テーブルに1レコードが作成され、[Employees]テーブルにはその従業員レコードが複数あります。Nテーブルの外部キーフィールドがサブフォームに表示されていれば、このオプションの効果を視認することができます。サブフォーム中でサブレコードが追加されるたびに、自動でフィールドの値がコピーされます。

このオプションはNテーブルの外部キーフィールドがサブフォームに表示されていなくても動作します。主キーフィールドの値は"内部的に"自動で外部キーフィールドにコピーされます。
サブフォームにリレート値を自動代入するにチェックが入れられていない場合、作成されたサブレコードは自動では適切にリレートされません。この場合は以下の方法でサブレコードをリンクしなければなりません:
注: Nテーブルのリレートレコードを作成した後に1テーブルの主キー値を変更するような場合、サブフォームにリレート値を自動代入するは効果がありません。このようなケースでは手作業あるいはコードを使用して外部キーの値も変更しなければなりません。
削除制御オプションでは、1テーブルのレコードが削除される際のNテーブルのリレートしたレコード削除のルールを指定します。通常ユーザーはカレントテーブルでないテーブルのレコードを削除することはできません。これは例えば[Employees]テーブルのレコードを削除するためには、まずこのテーブルをカレントテーブルにする必要があることを意味します。デザインモードではテーブルリスト中で目的のテーブルを選択することで、カレントテーブルにできます。
- リレートしたNレコードを残す: このラジオボタンを選択すると、ユーザーが1テーブルのレコードを削除しても、Nテーブルのレコードはそのまま残されます。結果Nテーブルには1テーブルに対応するレコードが無いレコードが残されることになります。この場合、Nテーブルのレコードがフォームにロードされても、1テーブルから対応するレコードはロードされません。
- リレートしたNレコードを削除: このラジオボタンを選択すると、ユーザーが1テーブルのレコードを削除すると、4Dは自動でリレートするNテーブルのレコードをすべて削除します。このプロパティを選択すると、1テーブルのレコードが削除されるときにNテーブル中に迷子のレコードが発生することを避けることができます。
注: このオプションが選択されている場合、4D はリレーションの整合性も保とうとします。1テーブル側のプライマリーキーフィールドの値が変更された場合、4Dは自動的に、Nテーブル側のリレートされたレコード内の外部キーフィールドの値を全て更新します。
- リレートしたNレコードがあれば削除しない: このラジオボタンを選択すると、Nテーブルにリレートしたレコードがある場合、1テーブルのレコードの削除を禁止します。このプロパティにより、誤ってレコードが削除されることを防ぐことができます。Nテーブルのレコードは、この選択に関わらず削除ができる点に留意してください。
リレートしたNレコードを削除とリレートしたNレコードがあれば削除しないラジオボタンはデータベース理論で参照整合性と呼ばれるものを強化します。参照整合性が有効であるとき、4DはリレートされたNテーブル中の各レコードが常に1テーブルの1つのレコードに関連付けられていることを確信することができます。
複数のリレートしたテーブルがある場合、削除制御は各リレーションごとに連鎖して適用されます。例えば以下のようなストラクチャーで考えます。リレートしたNレコードを削除がそれぞれのリレーションで選択されているとき、[Postal Rates]テーブル (1テーブル) からレコードが削除されると、4Dはまず[Company]テーブルから関連するレコードを削除し、次に削除された会社に属する従業員レコードを[Employees]テーブルから削除します。

削除制御設定に矛盾する状態にが発生した場合、4Dは削除を許可しません。例えば[Company]テーブルと[Postal Rates]テーブル間のリレーションにリレートしたNレコードを削除が設定されていて、[Employees]テーブルと[Company]テーブル間にはリレートしたNレコードがあれば削除しないが設定されている場合、削除は行われず、[Company]と[Employees]テーブルに変更はありません。
インスペクターパレットのSQLエリアにはSQLランゲージからストラクチャーを操作する際に有用な情報が表示されます。
リレーションの場合エリアにはFOREIGN KEYとREFERENCESプロパティが表示されます。