zoukankan      html  css  js  c++  java
  • 三范式

    数据库设计三范式:
    	1.什么是设计范式?
    		设计表的依据,按照这个三范式设计的表不会出现数据冗余
    		
    	2.三范式都有哪些?
    	
    		第一范式:任何一张表都应该有主键,并且每一个字段原子性不可再分
    		第二范式:建立在第一范式上,所有非主键字段完全依赖主键,不能产生部分依赖
    			多对多?三张表,关系表两个外键
    			t_student	学生表
    			sno(pk)		sname
    			---------------------------
    				1		张三
    				2		李四
    				3		王五
    			
    			t_teacher	讲师表
    			tno(pk)			tname
    			----------------------------
    				1		王老师
    				2		张老师
    				3		李老师
    			
    			t_tudent_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
    		第三范式:建立在第二范式基础之上,所有非主键字段直接依赖主键,不能产生传递依赖
    			一对多?两张表,多的表加外键
    			班级t_class
    			cno(pk)		cname
    			-------------------
    			1				a
    			2				b
    			3				c
    			
    			学生t_student
    			sno(pk)		sname		classno(fk)
    			101			张三			1
    			102			李四			1
    			103			王五			2
    			104			赵六			2
    		注:
    			实际开发中,以满足客户需求为主,有时候会拿冗余换执行速度
    	3.一对一怎么设计?
    		方案一:主键共享
    			t_user_login	用户登陆表
    			id(pk)		username 	password
    			----------------------------------
    			1			  zs			123
    			2			  li			456
    			
    			t_user_detail 	用户详细信息表
    			id(pk+fk)		realname	 tel
    				1		   张三		11111111
    				2		   李四		22222222
    		方案二:外键唯一
    			t_user_login	用户登陆表
    			id(pk)		username 	password
    			----------------------------------
    			1			  zs			123
    			2			  li			456
    			
    			t_user_detail 	用户详细信息表
    			id(pk)		realname	 tel			userid(fk+unique)
    				1		   张三		11111111				1
    				2		   李四		22222222				2
    

      

  • 相关阅读:
    [转]用asp.net实现远程获取其他网站页面指定内容
    Occupation career planning
    【原创】Self-Contained Container(自包含容器)
    Kindle 转换器
    Win32 多线程学习笔记
    OC学习心得【适合初学者】
    OC-通讯录
    植物大战僵尸
    三、属性和点语法
    二十、函数指针高级(动态调用)
  • 原文地址:https://www.cnblogs.com/-slz-2/p/15433283.html
Copyright © 2011-2022 走看看