-1

ダイアグラム内の SQL サーバー管理で完成させようとしているデータベース設計に問題があります。

プロセス テーブルとアクティビティ テーブルがあります。

プロセスは複数のアクティビティを呼び出すことができますが、アクティビティは一度に 1 つのプロセスによってのみ呼び出すことができます (1 対多の関係)。ただし、私の 2 番目のシナリオでは、アクティビティは一度に 1 つのプロセスを呼び出すこともできるため、プロセスは 1 つのアクティビティによってのみ呼び出すことができます。(1対1の関係)

このプリンシパルに基づいてこれらのテーブルを設計し、誰が誰に電話したかを追跡する最良の方法は何ですか?

前もって感謝します。

4

2 に答える 2

0

答える

誰が誰を呼んだかを追跡する

呼び出されたアクティビティ/プロセスのID、呼び出しを行ったアクティビティ/プロセスのID、開始時間、終了時間など、呼び出しをログに記録するための3番目のテーブルが必要なように思えます。

また、施行

アクティビティは、一度に1つのプロセスからのみ呼び出すことができます

アクティビティは、一度に1つのプロセスを呼び出すこともできます

アクティビティテーブルにcalled_by_processIDとcalling_processIDというフィールドを追加することで実行できます。これらは、呼び出しの開始時に更新し、呼び出しの終了時に空にする必要があります。

または、その機能をログテーブルに残し、対応する前の呼び出しが終了したときにのみそのアクティビティ/プロセス呼び出しを許可します。ロジックは少し複雑ですが、正規化は優れています。

于 2013-02-07T14:47:26.647 に答える
0

プロセスに activityID を追加し、アクティビティに ProcessID を追加するだけで、説明している 1 - M の 2 つの関係が得られます。

CalledByProcessID (アクティビティ) や CalledByActivityID ( プロセス

于 2013-02-07T14:36:31.633 に答える