表关联

Posted yuyu666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了表关联相关的知识,希望对你有一定的参考价值。

我们来为货物建一张表,其中包含规格、名称、生产厂家等等信息,如下:

可以看到这里存在大量冗余信息,比如厂家的名称、地址、电话等就在表中重复多次,

这会带来如下的问题:

1,信息冗余占据空间。数据的存储是占据一定的空间的,如果存在过多冗余信息将会使得存储系统的利用率过低。

2,信息冗余使得新数据的加入变得麻烦。每次录入新的货物的话必须把厂家地址、厂家电话等信息重新录入一次。

3,信息冗余使得维护数据的正确性变得困难。如果七侠镇肉联厂迁址了,那么必须将表中所有七侠镇肉联厂的厂家地址都要更新一遍。

解决的方法就是即将厂家的信息在一个新的表中维护。我们创建下边的厂家表:

这里我们为每个厂家指定了一个厂家编号做为主键,这个编号就可以唯一标识一个厂家。

有了厂家信息表,货物表就可以修改成如下的新的格式了:

在货物表中只保留了指向厂家表的主键的字段“生产厂家编号”,这样就避免了数据冗余的问题。当进行查询的时候,只要根据“生产厂家编号”到厂家信息表中查询就可以知道厂家的详细信息了;当厂家迁址的时候,只要修改厂家信息表中的一条数据就可以了。

这种将两张表通过字段关联起来的方式就被称为“表关联”,关联到其他表主键的字段被称为“外键”,上边例子中货物表中的“生产厂家编号”字段就是外键。表关联也是关系数据库的核心理念,它使得数据库中的数据不再互相孤立,通过表关联我们可以表达非常复杂的数据关系。

以上是关于表关联的主要内容,如果未能解决你的问题,请参考以下文章

7 多表操作

MYSQL三张表关联查询请教

Phalcon 两个表关联查询怎么搞

Django表关联对象及多表查询

laravel 关联查询 表一、表二、两个表的关联表

Oracle两张表关联中间表查询,那张关联到数据就显示,关联不到就负空值