1、什么是设计范式?

设计表的依据,按照这个三范式设计的表不会出 现数据冗余

2、三范式都有那些

第一范式:任何一张表都应该有主键并且每一个字段原子性不可再分【邮箱是邮箱 电话是电话】
第二范式:所有非主键字段,完全依赖主键,不能产生部分依赖(少用联合主键)【建立在1范的基础上】
多对多:三张表 关系表两个外键【学生表 教师表 学生教师关系表】
第三范式:所有非主键字段,直接依赖主键,不能产生传递依赖【建立在2范的基础上】
班级和学生:一对多 :两张表,多的表加外键

提醒:

在实际的开发中,以满足客户的需求为主,有的时候拿冗余换执行速度【连接查询表多了,执行速度慢(笛卡尔积)】

3、一对一怎么设计

用户表:一张表专门用来存用户的账号和密码,一张表专门用来存用户的信息【一张表拆成两张表】
用户登录的时候,查账号和密码的表,速度快

t_user_login 用户登录表

Id(pk) Username Password
1 Zs 0000
2 Ls 1234

t_user_detail 用户详细信息表

Id(pk+fk) Realname Phone
Zhangsan 111111111
Lisi 123456789

一对一设计两种方案:
主键共享**Id(pk+fk)**

Id(pk+fk) Realname Phone
Zhangsan 111111111
Lisi 123456789


外键唯一

Id(pk+fk) Realname Phone Userid(fk+unique)
Zhangsan 111111111 1
Lisi 123456789 2