8.6.1 リレーションシップの種類
リレーションシップには関連と方向があります。関連には,OneToOne,ManyToOne,OneToMany,およびManyToManyがあります。また,それぞれの関連の方向には,単方向と双方向があります。関連と方向を組み合わせると,リレーションシップの種類には次の7種類があります。
-
単方向のOneToOneリレーションシップ
-
単方向のManyToOneリレーションシップ
-
単方向のOneToManyリレーションシップ
-
単方向のManyToManyリレーションシップ
-
双方向のOneToOneリレーションシップ
-
双方向のManyToOne/OneToManyリレーションシップ
-
双方向のManyToManyリレーションシップ
ある会社の従業員と部門を例にリレーションシップについて説明します。従業員と部門は次のような関連があります。
-
エンティティでは,従業員と部門をそれぞれ表現します。
-
従業員は必ずどこかの部門に所属するものとします。
-
部門では複数の従業員を保持します。
-
従業員から部門を参照したり,部門から従業員を参照したりします。
この例の場合,エンティティの双方向のManyToOne/OneToManyリレーションシップで表現します。この場合,Manyが従業員,Oneが部門となります。従業員のエンティティと部門のエンティティの関連を次の図に示します。
なお,エンティティには,関連先のエンティティに操作を伝播させる設定ができます。この設定をカスケードといいます。カスケードが設定されていると,エンティティに対して操作した場合,操作したエンティティとリレーションシップがあるエンティティにも自動的に同様の操作が実行されます。カスケードを利用すると,ユーザは関連先のエンティティへの操作の手間を省くことができます。