问题:
问题3 以下情况描述了希望实施信息系统的公司。该公司希望跟踪其员工,部门和项目。假设公司的MIS部门进行了需求收集和分析阶段,并为您提供了具有以下描述的规范报告。
公司分为几个部门,可以有多个地点。每个部门都有唯一的名称,唯一的编号和经理。公司会记录每位员工开始管理部门的日期。
每个部门控制着许多项目,每个项目都有唯一的名称,唯一的编号和单个位置。
公司存储每位员工的姓名,社会保险号,地址,工资,性别和出生日期。每个员工只被分配到一个部门,但可能在几个不一定由同一部门控制的项目上工作。公司会跟踪员工每个项目每周工作的小时数。该公司还跟踪每位员工的直接主管。
出于保险目的,公司还希望跟踪每位员工的家属。该公司希望记录每个受抚养人的名字,性别,出生日期和与员工的关系。
为此情况绘制EER图表。
答案 0 :(得分:0)
这是物理模型 - 我留给你或其他人画它:
DEPARTMENTS
表
LOCATIONS
表
DEPT_LOCATIONS_XREF
表
DEPT_MANAGER_XREF
表
PROJECTS
表
EMPLOYEES
表
EMP_PROJECTS_XREF
表
DEPENDENT_RELATIONSHIP_CODES
表
DEPENDENT_RELATIONSHIP_CODE
(pk) DEPENDENTS
表
DEPENDENT_RELATIONSHIP_CODE
(fk)答案 1 :(得分:0)
多对多关系需要有“管理”表(类似于“Resides”表,这是多对多关系)。因为每个部门只有1个管理员,所以您可以在Department表中使用单个EmployeeIdOfManager字段(和DateStarted)。
我喜欢rexem的表格的命名约定,这些表格模拟了多对多关系,例如: 'EMP_PROJECTS_XREF
'对我来说比'InvolvedWith'更好。
DirectSupervisor字段必须是可空的(例如,对于顶级老板)。
我相信InvolvedWith表中不应该有一个DepartmentId字段。
您应该查询同一位置是否可以存在多个部门。如果是这样,那么Location表中不应该有DepartmentId字段,如果没有,那么你不需要Resides表。