我的数据库中有两个表Warning: preg_replace(): Compilation failed: missing ) at offset 51
和Department
。 Academic_staff
表中的主键为Department
,depId
表中的主键为Academic_staff
。
每个部门只由一名学术人员管理,因此两个表格之间的关系是一对一的。
我需要记录学术人员开始管理某个部门的日期,因此该关系必须具有自己的属性(aNo
)。
如何实现这个新属性?
起初我想创建一个包含三个属性(mStartDate
,depId
,aNo
)的新表,并在新表和其他两个表之间建立两个关系,但是然后我意识到这不是多对多的关系。
那么如何将属性mStartDate
添加到两个表之间的一对一关系中呢?
这两个表之间存在多个关系,其中一些关系是一对多的(部门雇用了多个学术人员),所以我无法合并这两个表。
答案 0 :(得分:0)
<强>部门强>
***** - 主键(depId,fk_aNo)*****
academicStuffs
<强> newtable的强>
mStartDate
- 主键(depId,aNo)
约束 - &GT;一个学术论坛不能开始更多地管理一个部门 不止一次。如果此结构适合您并且您想要启用 aacademic stuff管理一个部门不止一次通知我。
答案 1 :(得分:0)
您提议的新表(我将其称为部门管理)原则上可以记录每个部门的管理人员的历史,在这种情况下,它将是部门与学术部门之间的多对多(时间)关系。 / p>
但是,如果您只想记录当前管理器,将DepartmentManager“吸收”到Department表中是合理的,在那里给出两列(Manager_aNo和Manager_StartDate)。从概念上讲,对象“部门管理”仍然存在,但它被吸收,它没有自己的表。
你也可以向另一个方向吸收它(进入学术界),但这不允许学术界管理多个部门。你现在可能不需要,但原则上它比拥有两个经理的部门更有可能。