これまでの記事で見てきたリレーションシップは一般的なものですが、少し特殊なリレーションシップも試験に出題されますので、覚えておきましょう。

ループ構造(自己参照)

自分のエンティティの主キーを外部キーに設定する自己参照のケースがあります。自己参照は以下の図のように表記します。

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

複数のリレーションシップ

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

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

  • 親品目コードと品目コード
  • 子品目コードと品目コード