1

这是一个家庭作业问题。我已经有了自己的答案,但我不确定它是否正确,需要你们的建议。这是概念图:

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

这是我的关系模式:

Employer(EmployerID, name) -> 主键是 EmployerID

雇员(EmpID, name) -> 主键是 EmpID

我认为雇主和雇员实体应该是正确的,作为它的正常类。但是我不确定正在运行的项目和项目实体,即关联类和依赖类。这是我的答案:

运行项目(EmpID、Year、Duration、ProjectID、ProjectName)-> 所有主键

Project(ProjectID, ProjectName) -> 所有主键

4

1 回答 1

1

这是我从关系中了解到的,

  • 您有 3 个主要实体:Employer、Employee、Project
  • 雇主属性:EmployerId、姓名
  • 员工属性:EmployeeId、Name
  • 项目属性:ProjectId、Name、Duration、Year
  • 一位雇主监督多个项目。
  • 一名员工可以多个项目工作。

在这种情况下,可以识别 3 个根表:Employer、Employee 和 Project。用于关联根表的表是:

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

同样,我对Project表有一个建议,year 属性似乎是项目开始的年份(或日期)。如果是,则 Duration 属性是派生属性 (CurrentDate - StartDate)。该派生属性不需要包含在表中。

于 2011-02-10T02:25:14.167 回答