我有下表,应该将其转换为 2NF。
在我去过的地方,我有一个答案:
技能:员工,技能
地点:员工,当前工作地点
我有一种感觉我错了这个^上面^虽然。
也有人可以解释1NF,2NF和3NF之间的区别。我知道 1 是第一位的,你必须把它分解成更小的表格,但想要一个非常好的描述来帮助我更好地理解。谢谢
我有下表,应该将其转换为 2NF。
在我去过的地方,我有一个答案:
技能:员工,技能
地点:员工,当前工作地点
我有一种感觉我错了这个^上面^虽然。
也有人可以解释1NF,2NF和3NF之间的区别。我知道 1 是第一位的,你必须把它分解成更小的表格,但想要一个非常好的描述来帮助我更好地理解。谢谢
我是学习 2NF 的新手,但我已经解决了这样的答案。让我知道这是否正确,以便我可以理解我的错误并进行更多练习。
只有两张桌子。谢谢
Employee Table
EmployeeID | Name
1 | Jones
2 | Bravo
3 | Ellis
4 | Harrison
Skills Table
SkillId | Skill
1 | Typing
2 | Shorthand
3 | Whittling
4 | Light Cleaning
5 | Alchemy
6 | Juggling
Location Table
LocationId | Name
1 | 114 Main Street
2 | 73 Industrial Way
EmployeeSkill Table
EmployeeId | LocationId | SkillId | SkillName
1 | 1 | 1 | Typing
1 | 1 | 2 | Shorthand
1 | 1 | 3 | Whittling
2 | 2 | 4 | Light Cleaning
3 | 2 | 5 | Alchemy
3 | 2 | 6 | Juggling
4 | 2 | 4 | Light Cleaning
在 EmployeeSkill 表中,主键是 EmployeeId + LocationId,这为您提供了他们在该位置所拥有的技能。在此示例中,包含 SkillName 列违反了 3NF。这种做法实际上有时用于数据库设计(并称为“非规范化”),以减少连接以提高读取通常一起使用的数据的性能。
通常这仅在用于报告的表格中完成。