我计划创建 2 个表,Employee 和 Student。 Employee 和 Student 表有一些共同的字段,也有一些不同的字段。将这些相同的字段放在像 Person 这样的公用表中,然后将它们关联起来是个好主意吗?
例如,Employee 和 Student 都有 FirstName 和 LastName 字段。
最佳答案
人物类型
人员类型 ID (1 ,2 )
personTypeName (student,employee)
人
个人ID
PersonType(来自 PersonType 的外键)
人名
人物姓氏
员工
EmployeeID(来自 Person 表的外键以及该表的主键,因为所有员工都是个人,或者您可以为该表创建一个唯一的 empID,并创建一个像 fkPersonID 这样的列,该列在该表中也必须是唯一的)
EmployeeDepID(来自部门)
预算
等等
学生
与 Employee 表完全相同的方法。
由于您没有提到可能是雇员的学生,反之亦然,所以我没有考虑这种情况。假设学生也可能是雇员,只需在学生表中创建一个列,该列是雇员表中的 fkEmpID。但是在这种情况下,如果您在 employee 和 student 表中创建 fkPersonID,则必须保证这两列匹配。在您的学生表中提供同时获取 (fkPersonID, fkEmpID) 并匹配它们 (fkPersonID,fkEmpID) 这称为多列外键。
关于database - 数据库表设计建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36112433/