zoukankan      html  css  js  c++  java
  • 数据库三大范式

    数据库三大设计范式

    第一范式(1NF)

    '''第一范式书面话:必须保证数据库表的每一列都是不可分割的基本数据项
    大白话:必须保证每张表的每个列都不可再分的
    '''
    总表:订单号、订单日期、顾客编号、顾客名字、顾客地址所在城市(地址、城市)、联系电话、商品编号、商品名、商品价格
    按照第一范式分表:
    1NF->表:订单号、订单日期、顾客编号、顾客名字、地址、城市、联系电话、商品编号、商品名、商品价格

    第二范式(2NF)

    '''第二范式书面话:必须满足第一范式
                    保证每一行都要有唯一标识存在,
                    这个唯一属性列被称为主关键字或主键、主码。
                    实体的属性完全依赖于主关键字。
    大白话:必须满足第一范式,必须保证每张表内都有主键,且非主键字段必须依赖主键字段
    '''
    1NF->表:订单号、订单日期、顾客编号、顾客名字、地址、城市、联系电话、商品编号、商品名、商品价格
    按照第二范式分表:
    2NF->表1:订单号、订单日期、顾客编号、顾客名字、地址、城市、联系电话
        表2:订单号、订单日期、商品编号、商品名、商品价格

    第三范式(3NF)

    '''第三范式书面话:关系模型满足第二范式,所有非主属性对任何候选关键字都不存在传递依赖。
    大白话:必须满足第二范式,必须保证表内的每一列都是与主键存在直接联系的。
    '''
    2NF->表1:订单号、订单日期、顾客编号、顾客名字、地址、城市、联系电话
        表2:订单号、订单日期、商品编号、商品名、商品价格
    按照第三范式分表:
    3NF->表1:订单号、订单日期、顾客编号
        表2:顾客编号、顾客名字、地址、城市、联系电话
        表3:订单号、订单日期、商品编号
        表4:商品编号、商品名、商品价格
  • 相关阅读:
    Linux 终端管理工具,让终端管理更简单。这一期是【FinalShell】
    django添加检查用户名和手机号数量接口
    vue发送短信逻辑
    使用celery异步发送短信
    redis的pipline使用
    后端注册接口完善
    检查用户名是否使用接口
    celery配置与基本使用
    Celery介绍
    ubuntu开发机初始化
  • 原文地址:https://www.cnblogs.com/bk134/p/13033761.html
Copyright © 2011-2022 走看看