|NO.Z.00047|——————————|BigDataEnd|——|Java&MySQL多表/外键/数据库设计.V05|——|MySQL.v05|多表关系介绍|一对多关系|
一、多表关系设计
### --- 多表关系设计
——> 实际开发中,一个项目通常需要很多张表才能完成。
——> 例如:一个商城项目就需要分类表(category)、商品表(products)、订单表(orders)等多张表。
——> 且这些表的数据之间存在一定的关系,接下来我们一起学习一下多表关系设计方面的知识
表与表之间的三种关系 |
一对多关系: 最常见的关系, 学生对班级,员工对部门 |
多对多关系: 学生与课程, 用户与角色 |
一对一关系: 使用较少,因为一对一关系可以合成为一张表
|
二、一对多关系
### --- 一对多关系(1:n)
——> 例如:班级和学生,部门和员工,客户和订单,分类和商品
### --- 一对多建表原则
——> 在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键

三、sql语句
### --- sql语句
/*
表与表之间的三种关系
一对多关系(1:n 常见): 班级和学生 部门和员工
多对多关系(n:n 常见): 学生与课程 演员和角色
一对一关系(1:1 了解): 身份证 和 人
*/
-- 一对多关系 省表与市表
-- 创建省表 主表 一的一方
CREATE TABLE province(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20),
description VARCHAR(20)
);
-- 创建市表 从表 中 外键字段指向 主表的主键
CREATE TABLE city(
cid INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20),
description VARCHAR(20),
-- 创建外键 添加外键约束
pid INT,
FOREIGN KEY(pid) REFERENCES province(id)
);
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor