4Dテーブルとの間に設定されたリレーションは4D Mobileリンクのコンテキストにおいて透過的に使用されます。しかしながら、これらのリレーションのWakandaでの表示のされ方はモデルレベルで異なります。モデルエディターでは、リレーションはrelational attributesと呼ばれる特定の属性とリンクされています。これらの属性はリンクしたデータを直接表示するため、もしくはクエリを実行するためなどに使用されます。これについての詳細な情報に関しては、Wakandaドキュメントの"Attributes"セクションを参照して下さい。
4D側で設定されたそれぞれのリレーションに対して、Wakanda側ではモデルの表示に二つのrelational attributesが追加されています:
- リレーションのソーステーブル(クラス)内にて、n->1属性
- リレーションのデスティネーションテーブル(クラス)にて、1->n属性
これらの属性は、どちらも4D側のインスペクターにて定義されたN対1オプションと1対Nオプションでのリレーションの名前が与えられます。
具体例を考えましょう。"Employee/Company"ストラクチャーでのコンテキストにおいて、 [Employee] テーブルから [Company] テーブルへのリレーションを作成したとします。このリレーションには、識別のために名前を付けることが出来ます。この場合、例えばN対1リレーションには"worksFor"という名前をつけて、1対Nリレーションには"employs"という名前を付けることが出来ます:
![](../../picture/1333693/pict1333693.en.png)
Wakanda側では、コネクターのリンクを通じてこれらのリレーションが二つの新しいrelational attributesによって自動的にマテリアライズされます。これはモデルエディター内にて確認することが出来ます:
![](../../picture/1333695/pict1333695.en.png)
これらのリレーション(ひいてはそれに対応するrelational attributes)には、アプリケーションの目的に応じて自由に名前をつけることができます。
これの利点は、Wakanda 側でこれらの属性を使用してリレートしたデータを扱うのが簡単になるという事です。具体的には、relational attributesに基づいて datasources と関連付けられたウィジェットを作成することが出来ます。これらのウィジェットはユーザーアクションに応じて自動的に管理・更新されます。
例えば、一つのグリッドに会社の一覧を、もう一つのグリッドに選択した会社の従業員を表示するようなページを簡単に作成できるようになります。"Company" datastore classを一つのグリッドに関連付け、"employs" relational attributeをもう一つのグリッドに関連付けるだけです:
![](../../picture/1333697/pict1333697.en.png)
対応するデータソースは自動的に作成され、実行の間、両グリッドは自動的に同期されます:
![](../../picture/1333699/pict1333699.en.png)