数据库设计

数据库设计简介

1,软件的研发步骤

在这里插入图片描述

2,数据库设计概念

建立数据库中的表结构以及表与表之间的关联关系的过程。

在这里插入图片描述

3,数据库设计的步骤

  1. 需求分析
  2. 逻辑分析
  3. 物理设计
  4. 维护设计

在这里插入图片描述

总结

在这里插入图片描述

表关系

一对一:

例如:用户和用户详情

一对一关系多用于表拆分,将一个实体中经常使用的字段放一张表,不经常使用的字段放另一张表,用于提升查询性能

一对多(多对一):

例如:部门和员工

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

多对多:

例如:商品和订单

一个商品对应多个订单,一个订单包含多个商品
在这里插入图片描述

数据库设计 设计的是什么?

1,有哪些表

2,表里有哪些字段

3,表和表之间是什么关系

表关系有哪几种?

  • 一对一
  • 一对多(多对一)
  • 多对多

一对多

一对多(多对一):

  • 如:部门表和员工表
  • 一个部门对应多个员工,一个员工对应一个部门

实现方式:

的一方建立外键,指向一的一方的主键

在这里插入图片描述

建表语句如下:

-- 删除表
DROP TABLE IF EXISTS tb_emp;
DROP TABLE IF EXISTS tb_dept;

-- 部门表
CREATE TABLE tb_dept(
	id int primary key auto_increment,
	dep_name varchar(20),
	addr varchar(20)
);
-- 员工表 
CREATE TABLE tb_emp(
	id int primary key auto_increment,
	name varchar(20),
	age int,
	dep_id int,

	-- 添加外键 dep_id,关联 dept 表的id主键
	CONSTRAINT fk_emp_dept_a FOREIGN KEY(dep_id) REFERENCES tb_dept(id)	
);

查看表结构模型图:

在这里插入图片描述

多对多

多对多:

  • 如:订单和商品
  • 一个商品对应多个订单,一个订单包含多个商品

实现方式:

建立第三张中间表,中间表至少包含两个外键,分别关联两方主键
在这里插入图片描述

/*
	多对多:
		* 如:订单 和 商品
		* 一个商品对应多个订单,一个订单包含多个商品

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


	
*/
-- 删除表
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 表名 add constraint 外键名称 foreign key (外键字段名称) references 主表名称(主表列名称);
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);



查看表结构模型图:

在这里插入图片描述

一对一

一对一:

  • 如:用户和用户详情

  • 一对一关系多用于表拆分,将一个实体中经常使用的字段放一张表,不经常使用的字段放另一张表,用于提升查询功能。

实现方式:

在任意一方加入外键,关联另一方主键,并且设置外键为唯一(UNIQUE)

在这里插入图片描述

建表语句如下:

create table tb_user_desc (
	id int primary key auto_increment,
	city varchar(20),
	edu varchar(10),
	income int,
	status char(2),
	des varchar(100)
);

create table tb_user (
	id int primary key auto_increment,
	photo varchar(100),
	nickname varchar(50),
	age int,
	gender char(1),
	desc_id int unique,
	-- 添加外键
    -- [constraint] [外键名称] foreign key(外键列名) references 主表(主表列名)
	CONSTRAINT fk_user_desc FOREIGN KEY(desc_id) REFERENCES tb_user_desc(id)	
);

​ 查看表结构模型图:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值