1

これは宿題の質問です。私はすでに私自身の答えを持っていますが、それが正しいかどうかはわかりません。皆さんにアドバイスする必要があります。概念図は次のとおりです。

-------------
| Employer  |
-------------------
| EmployerID, Name|
-------------------
    |
    |- supervise
    |
------------------           ---------------  ---------
| Running Project | ------- |Year, duration| | Project |
-------------------          --------------- -----------
    |                                        | ProjectID, ProjectName,|
    |- works                                 -------------------
    |
-------------
| Employees |
-------------
| EmpID, Name|
--------------

これが私のリレーショナルスキーマです:

Employer(EmployerID、name)->主キーはEmployerIDです

Employees(EmpID、name)->主キーはEmpIDです

雇用主と従業員の実体は、通常のクラスとして正しいはずだと思います。しかし、実行中のプロジェクトと、関連付けクラスと依存クラスであるプロジェクトエンティティがわかりません。これが私の答えです:

RUnning Project(EmpID、Year、Duration、ProjectID、ProjectName)->すべての主キー

Project(ProjectID、ProjectName)->すべての主キー

4

1 に答える 1

1

関係からわかったことは、

  • 3 つの主要なエンティティがあります: 雇用主、従業員、プロジェクト
  • 雇用主の属性: EmployerId、Name
  • 従業員属性: EmployeeId、Name
  • プロジェクト属性: ProjectId、Name、Duration、Year
  • 1 人の雇用主が複数のプロジェクトを監督します。
  • 1 人の従業員が複数のプロジェクトに取り組むことができます。

その場合、Employer、Employee、および Project の 3 つのルート テーブルを識別できます。ルート テーブルを関連付けるために使用されるテーブルは次のとおりです。

  • EmployerProject (EmployerId、ProjectId)
  • EmployeeProject (EmployeeId、ProjectId)

繰り返しになりますが、 Projectテーブルについて提案があります。 year 属性は、プロジェクトが開始された年 (または日付) のようです。その場合、Duration 属性は派生属性 (CurrentDate - StartDate) です。この派生属性は、テーブルに含める必要はありません。

于 2011-02-10T02:25:14.167 に答える