Mysql数据表关系实战总结(一对一,一对多,多对多)

引言

在实际开发过程中,我们的数据表是几十个或上百个的,那么表与表之间的是如何关联的,下面分享一些项目经验

表关系

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

1、一对一

例如:用户和用户详情

一对一的关系是将一个实体中经常使用的字段放一张表,不经常使用的字段放另一张表,

可用于提升查询性能

实现方式:在任意一个表加入外键,关联另一个表主键,并且设置外键为唯一(UNIQUE)

案例:

tb_user用户表

id name age

1 xxx 10

2 xxx 20

tb_user_desc用户详情表

id city income user_id

1 广州 8000 1

2 深圳 9000 2

2、一对多

例如:部门和员工

一个部门对应多个员工,一个员工对应一个部门。

实现方式:在多个的表建立外键,指向一个的表的主键

案例:

tb_debt部门表

id name addr

1 业务 东莞

2 售后 东莞

tb_emp员工表

id name age dept_id

1 xxx 10 1

2 xxx 20 1

3、多对多

例如:商品 和 订单

一个商品对应多个订单,一个订单包含多个商品

实现方式:建立第三张中间表,中间表至少包含两个外键,分别关联两方主键

案例:

tb_order(订单表)

id payment payment_type status

tb_goods(商品表)

id title price

tb_order_goods(订单商品中间表)

id order_id goods_id

经验分享 程序员 微信小程序 职场和发展