0

大家好...所以我正在为大学开设数据库设计课程。我有下面的问题,我尝试在这里的图表http://tinypic.com/view.php?pic=httchc&s=3 .. 有人介意看看并提供建议吗?谢谢您的帮助!!

问题:

问题 3 以下情况描述了一家希望实施信息系统的公司。该公司希望跟踪其员工、部门和项目。假设公司的MIS部门做了需求收集和分析阶段,给你一份规格报告,描述如下。

公司分为多个部门,可以有多个地点。每个部门都有一个唯一的名称、一个唯一的编号和一个经理。公司记录每位员工开始管理部门的日期。

每个部门控制多个项目,每个项目都有一个唯一的名称、唯一的编号和一个位置。

公司存储每个员工的姓名、社会保险号、地址、工资、性别和出生日期。每个员工只分配到一个部门,但可以从事多个不一定由同一部门控制的项目。公司跟踪员工每周在每个项目上工作的小时数。公司还跟踪每个员工的直接主管。

出于保险目的,公司还希望跟踪每位员工的家属。该公司希望记录每个受抚养人的名字、性别、出生日期以及与员工的关系。

为这种情况画一个 EER 图。

4

2 回答 2

0

这是物理模型 - 我把它留给你或其他人来绘制它:

DEPARTMENTS桌子

  • DEPARTMENT_ID (pk)
  • DEPARTMENT_NAME(英国)

LOCATIONS桌子

  • LOCATION_ID (pk)
  • 地点名称

DEPT_LOCATIONS_XREF桌子

  • DEPARTMENT_ID (pk, fk)
  • LOCATION_ID (pk, fk)

DEPT_MANAGER_XREF桌子

  • DEPARTMENT_ID (pk, fk)
  • EMPLOYEE_ID (pk, fk)
  • EFFECTIVE_DATE (pk) -- 这个复合键允许某人担任同一部门的经理 2 次以上,只要它不是从同一日期开始的。
  • EXPIRY_DATE(非空)

PROJECTS桌子

  • PROJECT_ID (pk)
  • DEPARTMENT_ID (fk)
  • PROJECT_NAME(英国)
  • LOCATION_ID (fk)

EMPLOYEES桌子

  • EMPLOYEE_ID (pk)
  • DEPARTMENT_ID (fk)
  • 中间名字
  • 薪水
  • 性别
  • 出生日期

EMP_PROJECTS_XREF桌子

  • EMPLOYEE_ID (pk, fk)
  • PROJECT_ID (pk, fk)

DEPENDENT_RELATIONSHIP_CODES桌子

  • DEPENDENT_RELATIONSHIP_CODE(PK)
  • 描述

DEPENDENTS桌子

  • DEPENDENT_ID (pk)
  • EMPLOYEE_ID (fk)
  • 出生日期
  • 性别
  • DEPENDENT_RELATIONSHIP_CODE(fk)
于 2009-09-13T00:01:39.307 回答
0

多对多关系需要一个“管理”表(类似于多对多的“驻留”表)。因为每个部门只有 1 名经理,所以您可以在 Department 表中设置一个 EmployeeIdOfManager 字段(和一个 DateStarted)。

我喜欢 rexem 对建模多对多关系的表的命名约定,例如,' EMP_PROJECTS_XREF' 对我来说比 'InvolvedWith' 更好。

DirectSupervisor 字段必须可以为空(例如,对于最高老板)。

我相信 InvolvedWith 表中不应该有 DepartmentId 字段。

您应该查询是否可以在同一位置存在多个部门。如果是这样,那么 Location 表中不应该有 DepartmentId 字段,如果没有,那么您不需要 Resides 表。

于 2009-09-13T01:00:24.717 回答