我有一张桌子:
雇员
id name salary
1 A 100
2 B 200
3 C 300
4 D 400
我想添加另一个描述employee_responsibilities的表。我有两种方法:
方法1:
员工表保持不变且employee_responsibility表:
id employee_id responsibility
1 1 X
2 1 Y
3 1 YY
4 1 ZZ
5 2 QQ
6 2 WW
方法2:
员工表:
雇员
id name salary set_id
1 A 100 1
2 B 200 2
3 C 300 3
4 D 400 4
employee_responsibility表:
id responsibility
1 X
1 Y
1 YY
1 ZZ
2 QQ
2 WW
哪种方法更好?每种方法的优缺点是什么?
答案 0 :(得分:0)
这完全取决于您使用此数据的方式。对于典型的OLTP环境,您可能需要以下内容:
雇员
id name salary
1 A 100
2 B 200
3 C 300
4 D 400
责任
id responsibility
1 X
2 Y
3 YY
4 ZZ
5 QQ
6 WW
employee_responsibility
employee_id responsibility_id
1 1
1 2
1 3
1 4
2 5
2 6
如果这是一个数据仓库或其他一些阅读性能比灵活性更重要的东西,那么较不规范化的设计会更合适。