注册 登录
编程论坛 SQL Server论坛

[求助]关于怎样建立表与表之间的关系

fato 发布于 2007-01-05 16:12, 972 次点击
只有本站会员才能查看附件,请 登录


帮帮忙连一下这些表。小弟先谢了。
或者指导一下
4 回复
#2
fato2007-01-05 16:13
图片下载就清楚了。麻烦各位
#3
ninggang2007-01-06 14:08
呵呵,直接用鼠标在你所选的表的所在列拖动到另一张表的所在列就行了啊,不过,我认为:实际上没有必要建立外键,为什么呢?首先外键的作用是维护数据库的数据完整性,防止数据被乱修改,而且当要向带有外键的表修改数据时,总要先删除外键,才能修改,修改后还要在加上外键,那么有没有好的办法来避免这个繁杂的过程呢?答案是有的:
就是在修改带有外键表的时候,可以先查询在主键表中是否存在那一个字段,就行了,从效率上来说,这个问题,我不知道该怎么研究,如果对这方面有所研究的,也可以提出这方面的看法,呵呵
#4
bygg2007-01-07 16:14
为什么没有必要建立外键??
我们假设有两张表:
table1 (student_id name sex age) student_id为主键
001 张三 男 20
002 李四 男 21

table2 (student_id chenji) student_id为主键,同时为table1的外键
001 198
002 167




如果我们删除了table1中的 001 的数据,那请问在table2中的 001 的成绩是什么意思???

#5
Kendy1234562007-01-08 15:25

为什么要建立外键? 是为了维护数据的完整性!
以楼主的图例:
商品出库明细表和库存信息表之间就应该有外键 商品编码, 库存信息表为主表。 这样如果商品编码不在库存信息表中存在,即使你直接用代码方式写入商品出库表 也是不成功的。 这就保证了这2张表之间的数据不会出现冲突(库存里都没有的东西你出什么库!)

所以 这张图中的 供应商信息和供应商报价表之间要用供应商代码fk,订单和订单明细,采购和采购明细 销售和销售明细,两两间都要fk

如果商品信息这张表 是所有出入商品代码的汇总表的话,所有用到 商品编码 这个字段的表 都应该和 商品信息表 分别fk。

建立fk的充要条件就是: 只有主表中已经存在的条目,才允许在子表中存在。当你觉得2个表中的数据应该满足这种关系的时候 就建立外键

1