mysql--DBA\三范式和表的设计方案

DBA和三范式
将数据库中的数据导出:
在Windows的dos命令窗口中执行(不用登陆):
mysqldump bjpowernode>D:\bjpowernode.sql -uroot -p1234

	导出指定表:
	mysqldump bjpowernode emp>D:\bjpowernode.sql -uroot -p1234
导入数据库:
	必须先创建数据库,并且打开数据库,才能导入数据库.
	create database bjpowernode;
	use bjpowernode;
	source 脚本路径;

数据库设计三范式:
什么是设计范式:
设计表的依据,按照这个三范式设计的表不会出现数据的冗余.

三范式的内容:
	1. 任何一张表都应该有一个主键,并且每一个字段原子性不可再分.(比如:联系方式字段中包含了邮箱和手机号,其实可以再分开)

	2. 所有非主键字段,完全依赖于主键,不能产生部分依赖.(符合主键,有可能出现部分依赖(非主键字段可能只依赖于主键的某一个字段,而与其他字段无关),单一主键不可能出现部分依赖.)
		多对多该怎么处理? 分成三张表:关系表两个外键.
		t_student学生表
		sno(pk) 	sname
		-------------------
		1			张三
		2			李四
		3			王五

		t_teacher 讲师表
		tno(pk)		tname
		------------------
		1			王老师
		2			张老师
		3			李老师

		t_student_teacher_relation 学生讲师关系表
		id(pk)		sno(fk)		tno(fk)
		----------------------------------
		1			1			3
		2			1			1
		3			2			2
		4			2			3
		5			3			1
		6			3			3

	3.建立在第二范式的基础之上,所有非主键字段,不能产生传递依赖.
		一对多, 如何处理? 分成两张表,多的表加外键.
		班级t_class
		cno(pk)		cname
		------------------
		1			a
		2			b
		3			c
		4			d

		学生t_student
		sno(pk)		sname		classno(fk)
		-------------------------------------
		101			zs			1
		102			ls			1			
		103			ww 			2
		104			hh			2
		105			sd 			3

注意:在实际开发中,已满足客户的需求为主,有的时候会拿冗余换执行速度.

表的设计经典方案:
一对一怎么设计?
像用户的信息,有时专门留一张表存储用户名和密码用来登录使用.再建另一张表来存储用户的详细信息(比如家庭住址)

	两种方案:

		1.主键共享
		t_user_login 用户登录表
		id(pk) 		username	pwd
		-----------------------------
		1			zs			123
		2			ls			456

		t_user_detail 用户详细信息表
		id(pk+fk)		realname	tel
		-----------------------------
		1				张三			110
		2				李四			120

		1.外键唯一
		t_user_login 用户登录表
		id(pk) 		username	pwd
		-----------------------------
		1			zs			123
		2			ls			456

		t_user_detail 用户详细信息表
		id(pk+fk)		realname	tel 			userid(fk + unique)
		----------------------------------------------------------------
		1				张三			110				1
		2				李四			120				2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值