三个表

时间:2016-11-10 16:54:09

标签: sql

好奇我是否可以在3个不同的表中使用相同的主键?我将创建一个Employee,FullTime和PartTime表。我想将EmployeeID作为所有3的主键。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

您可以在名为EmployeeId的表格中使用主键Employees。这将有共同的信息,如雇用日期等。

然后,每个子表都可以有一个EmployeeId,它既是表中的主键,又是Employees.EmployeeId的外键引用。这是使用关系表实现一个关系的一种方法。

不幸的是,除非您使用触发器,否则此机制不会阻止一名员工进入另外两个表,但这不是您问题的一部分。

答案 1 :(得分:0)

听起来你的设计是错误的。

实体是员工

员工的属性是他们[当前^]的就业状态。

因此,在最简单的形式中,您需要一个雇员表,其中有一列表明其状态。

为了进一步改进,员工状态列应与另一个存储可能的员工状态的表具有外键关系。

^ 当前状态是1:1的关系。如果您想要更改历史记录,则这是1:M,需要进行不同的建模。