表与表之间的关系一共有4种

  1. 一对一
  2. 一对多
  3. 多对一
  4. 多对多

1) 一对一关系

定义

一张表的一条记录对应另一张表的一条记录

举例

看如下两张表
用户表(user)和用户详情表(user_info)
user表中的一条记录, 比如xiaoming, 对应的user_info的一条记录
一对一关系实现.bmp

关联条件

user.id=user_info.user_id

2) 一对多关系

定义

一张表的一条记录对应另一张表的多条记录

举例

一对多关系实现.bmp
看如下两张表

用户表(user)和文章表(article)

user表中的一条记录, 比如xiaoming, 对应的article中的多条记录

说明: 一个用户可以拥有(has)多篇文章 hasMany

关联条件

user.id=article.user_id

3) 多对一关系

定义

一张表的多条记录对应另一张表的一条记录

举例

看如下两张表

用户表(user)和国家表(country)

user表中的多条记录, 对应的country中的一条记录

说明: 多个用户属于(belongsto)一个国家

关联条件

user.country=country.id

4) 多对多关系

多对多关系实现.bmp

定义

表A的一条记录对应表B的多条记录

同时, 表B的一条记录也对应表A的多条记录

举例

看如下两张表

用户表(user)和角色表(role)

说明: 一个用户拥有多个角色, 一个角色也拥有多个用户

关联条件

建立中间表, 将多对多转换成两个一对多处理

父表: 一的那方叫做父表

子表: 多的那方叫做子表

在子表中建立一个字段, 让这个字段=父表的id, 那么在子表中建立的这个字段就叫做外键