MySQL(三大范式)

第一范式

数据表中的所有字段都是不可分割的原子值
是指,比如建立一个人的地址信息,不可建立字段为“中国湖南省长沙市天心区”如此,而要分别建立country,province,city,detail等多个分别的不可再分割的字段

第二范式

必须是满足第一范式的前提下,针对联合主键,第二范式要求,除主键外的每一列都必须完全依赖联合主键的而不能部分依赖,如果出现部分依赖联合主键的某一项,则需要拆分表
例:设计一个订单表

create table myoder(
	product_id int,
	custom_id int;
	product_name varchar(20),
	custom_name varchar(20),
	primary key(product_id,custom_id)
);

product_name只依赖于product_id,custom_name只依赖于custom_id,即主键外的其他列只依赖于部分的主键,此时需要拆分表

create table myoder(
	order_id int primary key,
	product_id int,
	custom_id int;
);
create table product(
	id int primary key,
	name varchar(20),
);
create table custom(
	id int primary key,
	name varchar(20),
);

第三范式

满足第二范式的情况下,除开主键列的其他列之间不能有传递关系依赖,确保数据表中的每一列数据都和主键直接相关,而不能间接相关
比如在设计一个订单数据表的时候,可以将客户编号作为一个外键和订单表建立相应的关系。而不可以在订单表中添加关于客户其它信息(比如姓名、所属公司等)的字段。如下面这两个表所示的设计就是一个满足第三范式的数据库表。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值