0

従業員の活動を追跡するWebベースのアプリケーションによって収集されたデータを保存するデータベースを開発しようとしています。このような従業員テーブルがあります

Employee
--------
id
name
position
email

そして、それぞれが異なる列を持つ複数のアクティビティテーブル。1つの例:

OutreachAndTraining
-----
id
date
county
city
type
...

ProfessionalDevelopment
------
id
date
comments

どの従業員が各アクティビティに参加したかを追跡できるようにしたいのですが、アクティビティ自体を1回だけログに記録したいと思います。複数の従業員を1つのアクティビティに関連付けるための最良の方法は何ですか?従業員IDとアクティビティIDを保存するために、アクティビティごとに個別のテーブルを作成する必要がありますか?

4

1 に答える 1

1

従業員が複数の活動に参加できると仮定すると、ここにあるのは、従業員と活動の間の N:M 関係であり、各関係ごとに追加の「リンク」テーブルでモデル化されています。

ここに画像の説明を入力


多くの種類のアクティビティがある場合は、継承 (別名、カテゴリ、一般化、サブタイプ、またはクラス階層) を検討して、関係の数を最小限に抑えることができます (したがって、「リンク」テーブル)。

ここに画像の説明を入力

継承の詳細については、ERwin Methods Guideで「Subtype Relationships」を検索してください。

于 2012-04-10T22:02:47.887 に答える