美文网首页技术干货技术文
数据库设计的一些问题

数据库设计的一些问题

作者: Dunizb | 来源:发表于2017-05-05 15:44 被阅读54次

char与varchar如何选择

原则:

  1. 如果列中要存储的数据长度差不多一致的,则因该考虑用char;否则因该考虑用varchar。
  2. 如果列中的最大数据长度小于50Byte,则一般也考虑用char。(当然如果这个列很少用,则基于节省空间和减少I/O的考虑,还是可以选择varchar)
  3. 一般不宜定义大于50Byte的char类型列。

decimal与float如何选择

原则:

  1. decimal用于存储精确数据,而float只能用于存储非精确数据。故而精确数据只能选择用decimal类型。
  2. 由于float的存储空间开销一般比decimal小(精确到7位小数只需4个字节,二精确到15位小数只需8个字节)故而非精确数据有限选择float类型。

时间类型如何选择

  1. 使用int来存储时间字段的优缺点
    优点:字段长度比datetime小。
    缺点:使用不方便,要进行函数转换。
    限制:只能存储大2038年-1-19 11:14:07即2^32为21474483648
  2. 需要存储时间粒度
    年月日小时分秒周

如何选择主键

  1. 区分业务主键和数据库主键
    业务主键用于标识业务数据,进行表与表之间的关联;
    数据库主键为了优化数据存储(InnoDB会生成6个字节的隐含主键)
  2. 跟数据库的类型,考虑主键是否要顺序增长
    有些数据库是按主键的顺序逻辑存储的
  3. 主键的字段类型所占空间要尽可能的小
    对于使用聚集索引方式存储的表,每个索引后都会附加主键信息。

避免使用外键约束

  1. 降低数据导入效率。
  2. 增加维护成本。
  3. 虽然不建议使用外键约束,但是相关联的列上一定要建立索引

避免使用触发器

  1. 降低数据导入效率。
  2. 可能会出现意想不到的数据异常。
  3. 使业务逻辑变的复杂。

关于预留字段

  1. 无法准确的知道的预留字段的类型。
  2. 无法准确的知道预留字段中所存储的内容。
  3. 后期维护预留字段所要的成本,同增加一个字段所需要的成本是相同的。
  4. 严禁使用预留字段。

什么是反范式化

反方式化是针对范式化而言的,所谓的反范式化就是为了性能和读取效率的考虑而适当的对第三范式的要求进行违反,而允许存在少量的数据冗余,换句话来说反范式化就是使用空间来换取时间。

为什么反范式化:

  1. 减少表的管理数量
  2. 增加数据的读取效率
  3. 反范式化一定要适度

维护和优化中要做什么

  1. 维护数据字典
  2. 维护索引
  3. 维护表结构
  4. 在适当的时候对表进行水平拆分或垂直拆分

参考:http://www.imooc.com/video/1938

相关文章

  • 数据库设计的一些问题

    char与varchar如何选择 原则: 如果列中要存储的数据长度差不多一致的,则因该考虑用char;否则因该考虑...

  • 数据库设计

    第六章 数据库设计 学习重点: 数据库设计的基本步骤; 数据库设计各阶段的具体设计内容; 数据库设计各阶段的设计描...

  • 11.21

    今天是设计的第四天,遇到了一些问题,把界面重新部署了一下,并准备连接数据库。

  • 阿里数据库开发规范:谁还敢说你的数据库设计的“烂”

    数据库设计几个规范: 数据库命名规范、数据库基本设计规范、数据库索引设计规范、数据库字段设计规范、数据库SQL开发...

  • 规范化数据库设计

    规范化数据库设计 为什么需要数据库设计 当数据库比较复杂时我们需要设计数据库 糟糕的数据库设计 : 数据冗余,存储...

  • MySQL 入门(四)

    九、规范化数据库设计 1. 为什么需要数据库设计 当数据库比较复杂时,需要设计数据库; 糟糕的数据库设计:数据冗余...

  • 数据库设计

    一、数据库设计概念 1. 数据库的生命周期 ①数据库分析与设计阶段包括需求分析、概念设计、逻辑设计和物理设计。②数...

  • 计算机二级java程序语言设计

    公共基础 数据库 数据库设计过程主要包括需求分析、概要结构设计、逻辑结构分析、数据库物理设计、数据库实施、数据库运...

  • 2018-04-19

    任务2.5 系统数据库设计 什么是数据库设计 数据库设计,是指根据用户需求,在某一具体的数据库管理系统上,设计数据...

  • 商城表结构设计

    (一)购物商城数据库设计-前期准备 (二)购物商城数据库设计-商品表设计 (三)购物商城数据库设计-商品表DDL(...

网友评论

    本文标题:数据库设计的一些问题

    本文链接:https://www.haomeiwen.com/subject/hscstxtx.html