数据库设计三范式

数据库设计三范式

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

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
重蔚重蔚管理团队
上一篇 2017年10月21日 08:45
下一篇 2017年10月22日 22:28

相关推荐

  • 教你如何管理mysql数据库。

    MySQL是一种开源的关系型数据库管理系统,它可以用于管理关系型数据库。要管理MySQL数据库,您需要了解SQL语言。SQL是结构化查询语言,它是用于管理关系型数据库的标准语言。您可以使用SQL语句来创建、删除和修改数…

    2024年7月24日
    04
  • 教你mysql字符串包含某个字符。

    Python字符串格式 在Python中,我们经常需要格式化字符串,以便在输出时插入变量值或执行其他操作,本文将介绍Python中的字符串格式化方法。 1、使用百分号(%)操作符 这是Python 2.x中最常用的字符串格式化方法,…

    2024年7月24日
    02
  • ES在MySQL、PHP中的使用

    ES简介一个高扩展、开源的全文检索和分析引擎,它可以准实时地快速存储、搜索、分析海量的数据。全文检索是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置…

    2022年6月19日
    0159
  • 小编分享利用MySQL实现一行转换多行的技巧。

    在MySQL中,有时候我们需要将一行数据转换为多行数据,这种情况通常发生在需要对某个字段的值进行拆分的时候,我们有一个包含地址信息的表,每个地址信息都存储在一个字段中,现在需要将这些地址信息拆分成多个行,…

    2024年6月20日
    00
  • (理论篇)温故而知新_PHP入门基础教程

    简单的回顾一下基础知识 1、嵌入方法: 类似ASP的<%,PHP可以是<?php或者是<?,结束符号是?>,当然您也可以自己指定。 2、引用文件: 引用文件的方法有两种:require 及 include。 require 的使用方法…

    2016年10月25日
    0689
  • 分享win7下怎么启用mysql服务。

    您可以通过以下步骤在Windows 7上启用MySQL服务:,,1. 打开“服务”应用程序。,2. 在服务列表中查找“MySQL”。,3. 如果服务未启动,请右键单击该服务并选择“启动”。 MySQL简介 MySQL是一个关系型数据库管理系统,…

    2024年7月15日
    03
  • 关于mysql时间戳是什么意思。

    MySQL时间戳是一种数据类型,用于存储日期和时间信息。有两种形式:1、TIMESTAMP类型,占用4个字节的存储空间,存储的值会根据时区进行转换,存储为UTC,时间戳的值是可以自动更新的;2、DATETIME类型,占用8个字节…

    2024年7月27日
    00
  • PHP+MySQL实现在线测试答题示例

    这个实例主要给大家介绍如何使用jQuery+PHP+MySQL来实现在线测试题,包括动态读取题目,答题完毕后台评分,并返回答题结果。读取答题列表:$sql = "select * from quiz order by id asc"; $query = mysql…

    2022年6月18日
    0146

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息