MySQL三大范式和反范式
第一范式
确保数据表中每个字段的原子性,每个字段都是不可再分的最小数据单元。
第二范式
在第一范式的基础上,确保表中的每列都和主键相关。
第三范式
在第二范式的基础上,确保表中的列都和主键直接相关,而不是间接相关。
用户表(id,user_id,username,password)
角色表(id,role_id,name)
用户_角色表(id,user_id,role_id)
通过第三张表(中间表)来建立用户表和角色表之间的关系,同时又符合范式化的原则,就可以称为第三范式。
反范式
通过增加冗余或重复的数据来提高数据库的读写性能
在上例中的user_role用户-角色中间表增加字段role_name,减少关联查询。
网友评论