• MySQL 数据库 建表 六大 范式


    功夫有 第一层 第二层 之分;

    MySQL数据库 建表 的第二层境界 是根据 实际业务需要来 制表,比如说为了 实际业务查询的需要 , 可能会有心的 在表中 增加 冗余 字段等等

    但是在第二层 功夫之前,还有第一层功夫,也就是 规范;

    以下是我对 6大范式 的理解心得

    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    目前有 六种设计数据库表的 范式

    分别是 第一范式 第二范式 第三范式  BC范式第三范式的修正版

               第四范式 第五范式(完美范式)

    其中范式越高,性能越差,一般根据实际情况,多用第三范式

    第一范式=> 关系型数据库 的基础 指 字段明确不可再分割,

    例如 : 联系方式  这个字段 里面的值 有电话(比如1234567890) 有邮箱(比如biyou@qq.com)  这样就不对

    应该分割为 2 个字段 电话:   邮箱:

    第二范式=> 在第一范式 基础上 表的明确不可分割

    也就是说 一个表里面的 非主键字段 必须完全依赖主键,  如果说某个字段没有完全依赖主键的的关系,则应该把这个字段提出来做2张表

    第三范式=>在第二范式 基础上  里面的非主键 字段,之间彼此独立,不相互依赖,类似梳头发的梳子,一根主干出来,上面的针彼此不相连,才能梳头发

    第三范式的修正版=>我一个表 就只有一个主键,    MySQL数据表是可以一张表设置多个主键,多个主键组合 产生主键的 功效 ,这样容易产生混乱;

    第四范式=>就是一个字段可能有多个值的情况,比如电影 题材 可能同时是 科幻,爱情等等,同一部电影,我因为这个题材属性的多值而产生多个条同一部电影的数据,就是数据冗余了;

    第四范式对这种情况的安排是 可以把 多值的字段 拆分出来做一个新表;

    第五范式=>又被称为完美范式 在第四范式的基础上,尽可能的把一张表拆分成主键/附属字段  这样尽可能是2个字段的表,这样好处是完全没有冗余信息,缺点是表与表的关系复杂性能低下

  • 相关阅读:
    linux下C++程序开发范例
    a list of compiler books — 汗牛充栋的编译器参考资料
    中国象棋将帅问题
    CPU利用率问题:操作系统原理和API
    算法性能分析
    MySQL时间分组查询
    在MongoDB的MapReduce上踩过的坑
    C++双缓冲多线程分析大文件词频
    MongoDB进行MapReduce的数据类型
    得到内网域管理员的5种常见方法<转>
  • 原文地址:https://www.cnblogs.com/cjd01/p/14071501.html
Copyright © 2020-2023  润新知