数据库 主键 外键 表间关联的概念

主键

主键就是数据行的唯一标识, 不准许有重复值. 一个表可以没有主键, 但是会难以处理, 因此一般情况下都要给数据库表设置主键.


数据库 主键 外键 表间关联的概念_第1张图片
![屏幕快照 2018-02-27 下午12.27.55.png](http://upload-images.jianshu.io/upload_images/1312119-78c8c66dbabf5b9d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

从上图可见, 这个表中的工号列中的数据是唯一的, 可以作为主键使用.

外键

以设计这个食品数据库表为例, 可以把需求设计成上面这张表来使用.


数据库 主键 外键 表间关联的概念_第2张图片
屏幕快照 2018-02-27 下午12.27.55.png

但有2个弊端:

  1. 表中的数据有大量的重复数据, 会占用大量的存储空间. 例如伊利食品厂的地址就是重复项数据.
  2. 因为有重复项, 因此不便于对数据的修改. 例如如果想把伊利食品厂的地址修改一下的话, 以上面这张表中的数据为例, 就需要改3处.

因此, 在设计这张数据库表的时候, 最好是把这张表分拆为两张表.
这样, 既减少了存储空间的占用, 又方便了对数据的修改.

其中, 厂家编号这列数据就叫做外键, 外键的特点是: 外键列的数据可以用重复值. 并且, 外键列中的数据正好对应着另一张表中的主键列的数据. 也正是因为有这种对应关系, 因此把这种对应关系叫做表间关联.

你可能感兴趣的:(数据库 主键 外键 表间关联的概念)