继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【备战春招】第5天 数据库设计之物理设计

潮流宣乐生
关注TA
已关注
手记 55
粉丝 0
获赞 0

课程名称:数据库设计那些事

课程章节:物理设计

课程讲师:sqlercn

课程内容:

步骤
  1. 选择合适的数据库管理系统
  2. 定义数据库、表及字段的命名规范
  3. 根据所选的DMBS系统选择合适的字段类型
  4. 反范式化设计(合理的冗余)
Mysql常用的存储引擎(推荐使用Innodb)

图片描述

命名规则

应遵循以下原则

  • 可读性原则
    • 使用大写和小写来格式化名字以获得良好的可读性(例如使用大驼峰命名法将fullname命名为FullName)
  • 表意性原则
    • 通过名字可表示出对象的含义
    • 对于表,表的名称应可体现表的存储内容
    • 对于存储过程,过程的名称应可体现其功能
  • 长命性原则
    • 尽少的使用缩写,因为有些缩写是有歧义的
字段类型选择
  • 当一个列可以选择多种数据类型时,应优先考虑数字类型,其次是日期二进制类型,最后是字符类型
  • 对于相同级别的数据类型,应优先选择占用空间小的数据类型
char和varchar如何选择
  1. 若存储的数据长度差不多一致,建议使用char,否则varchar
  2. 若列中最大数据长度小于50Byte,建议使用char(如果这个列很少使用,则基于节省空间和减少I/O的考虑,还是可以选择varchar)
decimal和float如何选择
  • decimal存储精度高,若存储精确数据要使用decimal类型
  • float存储空间小,若存储不精确数据(不需要精确到小数点后很多位)可选用float
如何选择主键
  • 区分业务主键和数据库主键
    • 业务主键用于标识业务数据,进行表与表之间的关联
    • 数据库主键用于优化数据库存储,一些情况下业务主键和数据库主键可以相同,若表没有设置主键,Innodb会优先选择非空列唯一索引当做主键,否则会生成6个字节的隐含主键
  • 根据数据库的类型,考虑主键类型是否要顺序增长
    • 有些数据库是按主键的顺序逻辑存储的
  • 主键的字段类型所占空间要尽可能的小
    • 对于使用聚集索引方式存储的表,每个索引后都会附加主键信息
避免使用外键约束

但是相关联的列上一定要建立索引

避免使用触发器
  • 会降低数据导入的效率、可能出现意想不到的数据异常、会使业务逻辑变得复杂
严禁使用预留字段
反范式化设计

为了性能读取效率的考虑而适当的对第三范式的要求进行违反

课程收获

学到了在数据库物理设计阶段的一些范式、准则和综合考虑的设计方法

图片描述

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP