这样做的好处是什么?
假设在数据库中有产品表A
-----------------------------------
| 字段名 | 类型 | 说明 |
-----------------------------------
| pro_1 |varchar2| 产品名 |
-----------------------------------
| pro_2 |number |车间编码 |
------------------------------------
| pro_3 |number |产量 |
------------------------------------
车间表 B
-----------------------------------
| 字段名 | 类型 | 说明 |
-----------------------------------
| pro_2 |number |车间编码 |
------------------------------------
| room_t |varchar2| 车间名 |
------------------------------------
现在页面上要显示的是:
产品名称 生产车间名 产量
它使用的是下面的语法得出数据:
select pro_1,room_t,pro_3 from a,b where a.pro_2=b.pro_2
这是我们一贯的做法,现在有以下疑问,请高手解惑!!!!
1、在B中,车间编码pro_2是主键,在A表中,车间编码是外键,
如果我们取消这种主键,外键关联,将B表设计为:
车间表 B
-----------------------------------
| 字段名 | 类型 | 说明 |
-----------------------------------
| xxxxx |number |车间编码 |
------------------------------------
| room_t |varchar2| 车间名 |
------------------------------------
之后使用以下语法:
select pro_1,room_t,pro_3 from a,b where a.pro_2=b.xxxxx
不是可以一样得到结果吗??????!!!!!!
为什么要有这样的外键关联啊!!!!!!
2、既然我们要显示的字段中有“车间名称”段,那么,为何要将A表
中的车间字段设置为:车间编码,之后采用2表关联来得到车间名?????
我们可以在A表中直接设置车间名字段就行啊
产品表A
-----------------------------------
| 字段名 | 类型 | 说明 |
-----------------------------------
| pro_1 |varchar2| 产品名 |
-----------------------------------
| ttttt |varchar |车间名 |
------------------------------------
| pro_3 |number |产量 |
------------------------------------
在录入数据时直接将车间名写入A表,之后
用简单语法就能得到结果集:
select * from a;
如果需要将C表中字段加入到A中,也不必加入索引号,直接加入需要的字段值就行啊
传统做法的好处是什么?