• mysql优化-数据库设计基本原则


    mysql优化-数据库设计基本原则

    一、数据库设计三范式

    第一范式:字段具有原子性
    原子性是指数据库的所有字段都不可被再次划分,如下表就不满足原子性,起点与终点 字段就可被拆分为起点与终点两个字段。

    id 起点-终点
    1 北京-上海
    2 北京-广州

    第二范式:消除对主键的部分依赖
    依赖是指在数据库表中,通过字段A就可以确定字段B,这就叫B对A依赖。
    而部分依赖就是指当数据库表中主键为复合主键(A,C),而B仅仅对A依赖,这种情况称作部分依赖。
    正确的方法是创建一个与业务逻辑无关的 id 主键,其他字段就对主键只存在唯一依赖,即满足第二范式的要求。

    第三范式:消除对主键的传递依赖
    传递依赖: 若B字段依赖A字段,C字段依赖B字段,则C字段对A字段构成传递依赖。

    id 列车号 座次 起点 终点
    *1 * D705 11车04号 北京 上海
    2 K507 15车77号 北京 重庆
    如上图所示列车的起点和终点都对主键id产生部分依赖(起点,终点-->列车号-->id)
    解决方法:分表,将传递依赖部分单独建表.
    列车号 起点 终点
    D705 北京 上海
    K507 北京 重庆
    (列子不恰当别在意)

    此处应注意的是三范式中,满足第二范式的一定要满足第一范式,满足第三范式的一定要满足第一和第二范式。


    二、数据库字段设计原则

    1.尽量使用整数来表示字符串
    使用整型数表示字符串有两大优势:
    -->1.整型数所占存储空间一般小于字符串
    -->2.整型数的运算速度快


    2.使用定点数表示浮点数
    浮点数在计算机中保存和运算易失真,对于银行金额一类精度要求高的数据,我们可以选用定点数decimal存储,定义decimal(P, D)可以创建一个整数位最多P位,小数位最多D位的定点数.

    3.使用尽量小的数据类型

    4.尽量避免使用非空字段

    1. null字段无法参与除nullis not null以外的运算
    2. null的存储需要额外的空间

    5.字段注释完整,字段名具有逻辑含义

    6.单表字段不宜过多

    7.使用预留字段

    三、应用关联表

    mysql两表之间可以存在三种特殊关系一对多多对多一对一,对应3对同名关联表。
    1. 一对多关联表 --------通常关联外键设置在的一方
    2. 多对多关联表 --------通过创建第中间表,存储两张表主键之间的对应关系.中间表与两张实体表分别形成两个一对多的关系.
    3.一对一关联表 --------一对一关联关系,可以直接用一张表来存储.但是如果表中的字段数过多或部分字段不常用,可以考虑分表,两张表共享同一主键.

  • 相关阅读:
    人月神话阅读笔记之二
    第二阶段:团队开发Fooks第三天
    第二阶段:团队开发Fooks第二天
    第二阶段:团队开发Fooks第一天
    第十三周进度总结
    人月神话阅读笔记之一
    第一阶段意见评论
    拓扑排序
    欧拉回路
    矩阵优化
  • 原文地址:https://www.cnblogs.com/LLBoy/p/11462081.html
Copyright © 2020-2023  润新知