设置表格与地图表格

时间:2015-09-21 16:01:07

标签: database oracle database-design

我有一张桌子:

雇员

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

哪种方法更好?每种方法的优缺点是什么?

1 个答案:

答案 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

如果这是一个数据仓库或其他一些阅读性能比灵活性更重要的东西,那么较不规范化的设计会更合适。