【发布时间】:2016-06-06 10:21:05
【问题描述】:
我被问到一个面试问题,我想确认我是否做对了。有一个表叫Employee,用月薪来保存员工信息(假设这个表目前只有一年的记录)
Employee(ID,Name,Month,Salary)
样本数据:
ID Name Month Salary
1 A Jan 2500
1 A Feb 3000
2 B Jan 4500
2 B Feb 6500
问题是:
这个表架构好吗?如果没有,你将如何解决?
我对表格进行了规范化,想知道这是否是对上表进行规范化的正确方法?
Employee(ID,Name)
tblSalary(ID,Emp_ID,Month,Salary)
如果这是一个非常基本的问题,请原谅
【问题讨论】:
-
如果员工被雇用只工作一年,你很好。
-
对我来说看起来不错,但作为面试官我会问你为什么这样做?它遵循什么原则?第一个版本违反了什么样的标准?
-
我也想知道为什么
tblSalary需要ID列。 -
...但是月薪是多少?
-
@Thilo tbh,我想如果我想保存一个没有获得任何薪水的新员工的信息,那么其余字段将为空。桌子设计对我来说并不好看。你能解释一下吗?假设你是我的面试官,你想解释为什么它应该被规范化