数据库表之间存在多种关系,例如一对一关系、一对多关系
一对一关系
有两个表,在第一个表中的某一行只与第二个表中的一行相关,同时第二个表中的某一行,也只与第一个表中的一行相关,我们称这两个表为一对一关系。一对一关系是比较少见的关系类型。但在某些情况下,还是会需要使用这种类型。
- 情况一:一个表包含了太多的数据列(需要拆分成子表)
- 情况二:将数据分离到不同的表,划分不同的安全级别。(设定不同的安全级别)
- 情况三:将常用数据列抽取出来组成一个表(常用的数据抽为一个表)
也就是说我们需要的一对一关系通常在拆分表时操作
一对多关系
有多张表,第一个表中的行可以与第二个表中的一到多个行相关联,但是第二个表中的一行只能与第一个表中的一行相关联【lookup】。
一个人可以拥有多辆汽车,要求查询某个人拥有的所有车辆。
在车辆的表中加个外键字段(人的编号)即可。建两个表,一方不动,多方添加一个外键字段
- 一对多关系是最常见的关系类型。
通常用于外键关联,lookup关联。
多对多关系
有两个表,第一个表的一行可以与第二个表中的一到多个行相关联,同时,第二个表中的一行可以与第一个表中的一到多个行相关联。
学生选课,一个学生可以选修多门课程,每门课程可供多个学生选择
。好的方式是实体和关系分离并单独建表,实体表为学生表和课程表,关系表为选修表,其中关系表采用联合主键的方式**(学生表主键,课程表主键组成)**建表。