1. 数据库设计概念
- 建立数据库中的表结构以及表与表之间的关联关系的过程。
- 有哪些表?表里有哪些字段?表和表之间有什么关系?
2. 表关系
- 一对一
如:用户 和 用户详情
一对一关系多用于表拆分,将一个实体中经常使用的字段放一张表,不经常使用的字段放另一张表,用于提升
查询性能 - 实现方式:在任意一方加入外键,关联另一方主键,并且设置外键为唯一(UNIQUE)
2.2 表关系之一对多
- 一对多(多对一)
如:部门 和 员工
一个部门对应多个员工,一个员工对应一个部门。 - 实现方式:在=多=的一方建立外键,指向一的一方的主键
2.3 表关系之多对多
- 多对多
如:商品 和 订单
一个商品对应多个订单,一个订单包含多个商品。 - 实现方式:建立第三张中间表,中间至少包含两个外键,分别关联两方主键。
DROP TABLE IF EXISTS tb_order_goods;
DROP TABLE IF EXISTS tb_order;
DROP TABLE IF EXISTS tb_goods;
CREATE TABLE tb_order(
id int primary key auto_increment,
payment double(10,2),
payment_type TINYINT,
status TINYINT
);
CREATE TABLE tb_goods(
id int primary key auto_increment,
title varchar(100),
price double(10,2)
);
CREATE TABLE tb_order_goods(
id int primary key auto_increment,
order_id int,
goods_id int,
count int
);
alter table tb_order_goods add CONSTRAINT fk_order_id FOREIGN key(order_id) REFERENCES tb_order(id);
alter table tb_order_goods add CONSTRAINT fk_goods_id FOREIGN key(goods_id) REFERENCES tb_goods(id);