标签:10 范式 name database id mysql pk 主键
DBA命令
导出数据
- 导出某库
- 在shell窗口:mysqldump database_name > /home/wangxun/mysqlBackUp/database_name.sql -uroot -pXXX;
- 导出某表
- 在shell窗口:mysqldump database_name tb_name > /home/wangxun/mysqlBackUp/tb_name.sql -uroot -pXXX;
导入数据
- create database database_name;
- use database_name;
- source 导出的sql文件;
数据库设计三范式
什么是设计范式?
- 设计表的依据,根据这个三范式规则设计的表,不会出现数据冗余
第一范式
- 任何一张表都要有主键,每个字段具有原子性,不可再分
第二范式
- 在以上范式基础上
- 所有非主键字段完全依赖主键,不要产生部分依赖
- 多对多怎么设计?
- 三张表,关系表里两外键
t_student 学生表 sno(pk) sname ___________________ 1 zs 2 ls 3 wu t_teacher 讲师表 tno(pk) tname _____________________ 1 t_wang 2 t_zhang 3 t_li t_student_teacher_relation 学生讲师关系表 id(pk) sno(fk) tno(fk) _______________________________________ 1 1 1 2 1 2 3 2 2 4 2 3
第三范式
- 以上范式基础上
- 所有非主键字段必须直接依赖主键,不能产生传递依赖
- 一对多怎么设计?
- 两张表,多的表加外键
注意
- 实际开发,以满足客户的需求为主,有时候会拿冗余换执行速度
一对一怎么设计?
方案一:主键共享
t_user_login 用户登陆表
id(pk) username password
___________________________________
1 zs 123
2 ls 456
t_user_detail 用户详细信息表
id(pk + fk) realname tel ....
__________________________________________
1 wangxun xxx
2 han yyy
方案二:外键唯一(多对多的变形)
t_user_login 用户登陆表
id(pk) username password
___________________________________
1 zs 123
2 ls 456
t_user_detail 用户详细信息表
id(pk) realname tel userid(fk + unique) ....
______________________________________________________
1 wangxun xxx 1
2 han yyy 2
标签:10,范式,name,database,id,mysql,pk,主键 来源: https://www.cnblogs.com/nefu-wangxun/p/16532372.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。