好奇我是否可以在3个不同的表中使用相同的主键?我将创建一个Employee,FullTime和PartTime表。我想将EmployeeID作为所有3的主键。有什么想法吗?
答案 0 :(得分:3)
您可以在名为EmployeeId
的表格中使用主键Employees
。这将有共同的信息,如雇用日期等。
然后,每个子表都可以有一个EmployeeId
,它既是表中的主键,又是对Employees.EmployeeId
的外键引用。这是使用关系表实现一个关系的一种方法。
不幸的是,除非您使用触发器,否则此机制不会阻止一名员工进入另外两个表,但这不是您问题的一部分。
答案 1 :(得分:0)
听起来你的设计是错误的。
实体是员工
员工的属性是他们[当前^]的就业状态。
因此,在最简单的形式中,您需要一个雇员表,其中有一列表明其状态。
为了进一步改进,员工状态列应与另一个存储可能的员工状态的表具有外键关系。
^ 当前状态是1:1的关系。如果您想要更改历史记录,则这是1:M,需要进行不同的建模。