一:表关系
1>一对多的关系 表结构 在多的一方 添加一的一方的主键 当做外检
-- 比如 班级和学生是一对多的关系 班级是一的一方 学生是多的一方 应该在学生的表中一家班级表的主键作为外检
2> 一对一的关系 表结构是在双方的表中都添加对方的主键作为外检 并且给外检添加唯一索引
举例 用户表
id name carid
1 张三 1
身份表
id carid userid
1 444334343434 1
3>多对多的关系 表结构是添加一张中间表 中间中存在双方的主键作为双主键
用户表
用id 用户名
1 scott
2 hr
3 sys
角色id 角色名称
1 dba
2 connect
3 sys_operate
用户角色中间表
用户id 角色id
3 1
3 2
3 3
1 2
2 1
二 三大范式
--第一范式 是针对于单列来说 如果列是相对来说不可拆分的最小单位 说明满足第一范式
--第二范式 是针对于多列来说 一个表只能做一件事情 也就是说所以的列必须依赖主键
--第三范式 所有的列 必须直接依赖主键 不能间接依赖
一般数据库的设计 只需要满足 第一和第二范式
产生了冗余 不满足第三范式 但是对于解决大数据量的关联问题 有很大的优化空间