これまでの記事で見てきたリレーションシップは一般的なものですが、少し特殊なリレーションシップも試験に出題されますので、覚えておきましょう。
ループ構造(自己参照)
自分のエンティティの主キーを外部キーに設定する自己参照のケースがあります。自己参照は以下の図のように表記します。

人気ゲームソフトであれば、シリーズ化されるものですが、前作のソフトが何なのかわかるようにしておきたい場合、上図のように属性の中に自己を参照する外部キーを持たせることになります。このようにすることで、最新ソフトが前作ソフトを参照し、前作ソフトがその前のソフトを参照するといったループ構造が出来上がります。これが自己参照です。

複数のリレーションシップ
あるエンティティから、別のエンティティに対して複数の外部キーを持つ場合、下図のように、その数だけリレーションシップを表記しなければなりません。

このケースの代表例としてBOM(部品表や品目構成表)があります。例えば、品目構成表に親コードと子コードを持たせるとします。この場合、品目構成と品目のリレーションシップは二つになるので、次の2本の矢印が必要になります。
- 親品目コードと品目コード
- 子品目コードと品目コード