三范式:
解决:
设计表的一句,按照这个三范式设计的表不会出现数据冗余。
三范式:
1、任何一张表,都应该有主键,并且每一个字段原子性不可再分。
2、所有非主键字段,完全依赖主键,不可产生部分依赖。
注:形成多对多时,需要三张表,关系表2个外键即可。
如下:
3、建立在第二范式的基础上,所有非主键字段直接依赖主键,不能产生传递依赖。
在实际开发中
注:在实际开发中,以满足客户的需求为主,有的时候会拿冗余换执行速度。
一对一关系:
2种方案:
(1)主键共享 pk+fk
(2)在下边用户详情表 添加 userId (unique)
如:
用户登录表和用户详情表
user_login表
id(pk) account password
1 123 123
user_details表
id(pk+fk) name age tel userId
1 lxc 20 131xxxxxxxxx 1
3 lxc1 21 132xxxxxxxxx 3