数据库设计三范式

数据库设计三范式

1NF:要求一张表只描述一件事。比如学生表只能保存学生信息,和学生无关的信息不得保存;

2NF:要求保证表中每一行数据的原子性。即表中不得存在完全相同的数据行,存在完全相同的数据行叫数据冗余(或叫数据副本),这是一种错误,要尽量的减少和避免,无法完全完全消除。解决方案主键或标识,一般的是主键配合标识去用的。

3NF:(外键)表中其他的(外)键要依赖于主(键表)(主键)键而存在。

 

create table StudentCode(

scID int primary key auto_increment,

sCode varchar(18)

);

 

create table Student(

sID int primary key auto_increment,

sName varchar(16),

sAge int,

scID int,#外键列数据来自于主键表主键列

foreign key(scID) references StudentCode(scID)

);

 

insert into StudentCode values(null,'123');

insert into StudentCode values(null,'456');

insert into Student values(null,'zs',18,1);

insert into Student values(null,'ls',19,2);

 

Select sname,sage,scode from student,studentcode

Where student.scid=studentcode.scid;

TIPS:

    • 主键列的一列所有数据行,不得为空并且不得相同,并且一张表中最多只有一个主键,万级数据查询有主键速度更快;
    • 标识列的数据类型只能是整型,在MYSQL中必须是主键才能设置;
    • 使用truncate table 表名; 可以删除标识,但是不能加条件,只能删除所有数据;
    • 标识种子:默认标识种子就是1,可以自由指定,插入时指定后续用null即可。只能改一次不能比原来的数据小。
    • 先建主表设置主键列,再建外键表添加外键列;先插入主表数据,再根据主表数据添加外键列数据;先删除外键表数据,再删除主键表数据;
    • 三范式越标准越规范,但是效率越低,一般人为的违背第三大范式只会遵循1、2范式。

    其他规则

    • 字符串的长度一般最优化,然后再为2的N次方;
    • 在写SQL指令时,看看系统大小写,对应大小写,执行速度还要块;
    • 使用关键字: 用定界符 `` ;
    • 数据名、表名一般情况不用复数。比如Student。

     

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处:https://www.cwhello.com/2924.html

(0)
上一篇 2017年10月21日 14:47
下一篇 2017年10月22日 22:28

相关推荐

  • 通过php操作mysql来创建数据库(附代码)

    创建数据库 此操作页面的html代码如下: 添加数据库 数据库名 操作 php07 修改 删除 这时我们需要建立一个用户提交数据库名的表单的htnl页面 代码如下: 标题 数据库名: 最后是一个接收用户提交数据并处理的页面 ps...

    2018年3月14日
    0320
  • 关于PHP操作数据库的总结

    学的是:PHP操作MySQL 用什么来操作的:PHP的操作MySQL的扩展函数 开启函数库扩展:在php.ini中,php_mysqlxxxx.dll 操作流程: 1.链接数据库 2.选择数据库和设置编码 3.准备SQL语句 4.发送SQL语句 5.接收结果集并解...

    2018年3月30日
    0320
  • MySQL数据库性能优化之一(缓存参数优化)

    数据库属于 IO密集型的应用程序,其主要职责就是数据的管理及存储工作。而我们知道,从内存中读取一个数据库的时间是微秒级别,而从一块普通硬盘上读取一个IO是在毫秒级别,二者相差3个数量级。所以,要优化数据库,...

    2017年12月26日
    0230
  • 数据库基础篇——数据库介绍及MYSQL的安装配置

    数据库介绍 DataBase,简称DB,数据仓库,提供数据存储以及查询(取)服务的软件。 数据库分类 轻量级:DB2、foxpro、access(访问)、mysql、…… 标准级:MS SQL 2000、2005、2008、2010 重量级:oracle   SQL...

    2017年10月20日
    0240
  • PHP操作MySQL的流程

    1.链接数据库 2.选择数据库并设置编码 3.准备SQL语句 4.发生SQL语句到MySQL服务器 5.接收返回的结果集资源 6.解析结果集资源 7.关闭链接资源 流程图:...

    2018年3月23日
    0260
  • mysql中删除表记录delete from和truncate table的用法区别

    昨天开发的时候遇到的问题,整理了一下,分享给大家,可以看看,有需要的话可以利用一下。 mysql中删除表记录delete from和truncate table的用法区别: MySQL中有两种删除表中记录的方法,一种是delete from语句,另...

    2018年4月13日
    0331
  • mysql的数据操作_删除数据

    语句:delete from 表名 where条件 [order排序] [limit限定]; Where条件必须添加,否则删除所有数据,建议id,原因id唯一性 删除大范围的数据。 Order:当前表倒序还是正序,不用添加,默认就可以了 Limit:限定范...

    2017年11月24日
    0270
  • Mysql常用命令合集(详细)

    Mysql常用命令 show databases; 显示数据库 create database name; 创建数据库 use databasename; 选择数据库 drop database name 直接删除数据库,不提醒 show tables; 显示表 describe tablename; 显示具体的表结...

    2018年1月30日
    0250

发表评论

您的电子邮箱地址不会被公开。

您看到的还是重蔚自留地。只是我们升级啦!