ERモデリングレッスン8(イベントと後続イベント)

昨年末のエントリ(id:ahirasawa:20051229)に続いて、連載第5回の記事で紹介した基本パターンの2つ目「イベントと後続イベント」のERモデルを説明する。(ERモデルを解説する理由については、以前のエントリ(id:ahirasawa:20050629)を参照していただきたい。)

UMLのクラス図とベン図(=変形オブジェクト図)表現は次の通りである。



ERモデルは、イベントと後続イベントの多重度によって変わる。まずは1対オプショナルの場合から。この場合、基本的に「後続イベント」には、「イベント」と同じ主キーを持たせればよい。

ここでは申請と承認を例にしたが、実際の承認プロセスは上記のように単純とは限らない。複数人で承認するためにワークフロープロセスになっていることはよくあるし、金額や内容によって承認プロセスが変わることもある。



1対多の場合のERモデルは次のようになる。

1対多の場合は、1つの「イベント」に対して複数の「後続イベント」が発生するため、「後続イベント」には、「イベント」の主キーに加えて、シーケンス番号やタイムスタンプなどを持たせる必要がある。上記の例で「配送」に独自の識別子を持たせたい場合には、「受注ID」を参照キーにする必要がある。



最後は多対1の場合のERモデルである。

この場合、先ほどとは逆に、「イベント」側に「後続イベント」の識別子を参照キーとして持たせればよい。