数据库设计。双重关系

时间:2012-03-11 09:50:02

标签: database database-design

我正在开发一个显示大学教育过程的数据库。
学生专攻各部门,他们有部门主管 在第四年,学生写了学士学位的毕业作品,批评了另一个部门的老师 我确定了几个实体:部门,学生,教师。和其他实体:工作

学生表格

  • stud_id
  • 名称
  • dep_id

工作

  • work_id
  • 标题
  • supervisor_id
  • critic_id
  • stud_id

教师

  • teach_id
  • 名称
  • dep_id

DEPARTMENS

  • dep_id
  • 标题

事实证明,字段supervisor_id和critic_id链接到教师表中的字段teach_id。我怎么解决这个问题?感谢。

2 个答案:

答案 0 :(得分:0)

在完成您的场景时,应该很好地引用主键和外键.... 由于critic_idsupervisor_idteach_id相关联,因此它们应该是teach_id的外键.....这样,您也可以对数据库进行规范化...

答案 1 :(得分:0)

教师可能也不是主管。

你需要一个额外的表 - 监督员,就像老师一样,然而,这些字段不是“name”和“dep_id”,而是进入另一个名为“STAFF”的表。

因此,监督员和教师都有一个名为“staff_id”的字段,它连接到STAFF的名称/部门,SUPERVISOR_ID链接到SUPERVISOR,而CRITIC_ID链接到教师。

总结一下,6个表:学生,工作人员,工作,教师,监督员,部门。

通过stud_id将作品加入学生,通过supervisor_id加入主管,通过critic_id加入教师

由staff_id

加入主管员工

staff_id

将教师加入员工队伍

通过dep_id

将员工加入部门

有意义吗?