Database design 概念到关系映射

Database design 概念到关系映射,database-design,relational-model,conceptual-model,Database Design,Relational Model,Conceptual Model,这是一个家庭作业问题。我已经有了自己的答案,但我不确定是否正确,需要你们的建议。以下是概念图: ------------- | Employer | ------------------- | EmployerID, Name| ------------------- | |- supervise | ------------------ --------------- --------- | Running Project | ------- |

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

-------------
| Employer  |
-------------------
| EmployerID, Name|
-------------------
    |
    |- supervise
    |
------------------           ---------------  ---------
| Running Project | ------- |Year, duration| | Project |
-------------------          --------------- -----------
    |                                        | ProjectID, ProjectName,|
    |- works                                 -------------------
    |
-------------
| Employees |
-------------
| EmpID, Name|
--------------
以下是我的关系模式:

雇主(EmployerID,名称)->主键是EmployerID

Employees(EmpID,name)->主键是EmpID

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

正在运行的项目(EmpID、年份、持续时间、ProjectID、ProjectName)->所有主键


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

以下是我从关系中理解的内容

  • 您有三个主要实体:雇主、雇员、项目
  • 雇主属性:EmployerId、姓名
  • 员工属性:EmployeeId、姓名
  • 项目属性:项目ID、名称、持续时间、年份
  • 一个雇主监督多个项目
  • 一名员工可以为多个项目工作
在这种情况下,可以确定3个根表:雇主、雇员和项目。用于关联根表的表包括:

  • 员工项目(员工ID、项目D)
  • 员工项目(员工ID、项目D)

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

以下是我从关系中理解的内容

  • 您有三个主要实体:雇主、雇员、项目
  • 雇主属性:EmployerId、姓名
  • 员工属性:EmployeeId、姓名
  • 项目属性:项目ID、名称、持续时间、年份
  • 一个雇主监督多个项目
  • 一名员工可以为多个项目工作
在这种情况下,可以确定3个根表:雇主、雇员和项目。用于关联根表的表包括:

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