为了账号安全,请及时绑定邮箱和手机立即绑定
首页 手记 【九月打卡】第17天 --数据库设计那些事第三章物理设计

【九月打卡】第17天 --数据库设计那些事第三章物理设计

2022.09.21 19:14 48浏览

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


课程章节:物理设计


讲师:sqlercn


https://www.imooc.com/video/1903



课程内容:



 

物理设计:1234步骤不能颠倒
1 常用DBMS有 mysql oracle sqlserver 等
2 定义数据库、表及字段的命名规范
3 选择合适的字段类型 varchar char
4 反范式化设计:增加冗余,提高效率 -空间换时间


选择数据库系统:成本 、功能、操作系统、开发语言
Oracle (事物成本低) 高安全性大项目
SQLServer 商业(更合企业项目) 中小企业 只有WINDOWS 与.NET结合更好
MySql PgSQl 开源(常见于互联网项目)


MySQL常用的存储引擎

5f689ffd0001f06a12800720.jpg

表及字段的命名规则
1.可读性原则(使用大小写来格式化的库对象名以获得良好的可读性)
2.表意性原则(对象的名字应该能描述出它所标识的的对象)
3.长名原则(尽可能少使用或不适用缩写)

1、字段类型的选择原则
当一个列可以选择多种数据类型时,应该优先考虑数字类型,其次是日期或二进制类型,最后是字符类型。对于相同级别的数据类型,应该优先选择占用空间小的数据类型。
1、在对数据进行比较(查询条件、JOIN条件及排序)操作时,同样的数据,字符处理往往比数字处理慢。
2、在数据库中,数据处理以页为单位,列的长度越小,利于性能提升。

char和varchar如何选择
原则:
1.如果列中要存储的数据程度差不多是一致的,则应该考虑用char 否则应该考虑用varchar
2.如果劣种的最大长度小于50byte,则一般也要考虑char
3.一般不易定义大于50te的char类型列。
decimal与float 如何选择
1.decimal用于存储精确数据,而float只能用于存储非精度数据。
2.由于float的存储空间开销一般比demimal小。
  故非精度数据优先选择float
时间类型如何存储
1.使用int来存储时间字段的优缺点
  优点:字段长度比达特time小
  确定:使用不方便,要进行函数转换。
2.需要存储的时间粒度
  年月日小时分秒周
如何选择主键
1.区分业务主键和数据库主键
  业务主键用于标识业务数据,进行表与表之间的关联。
  数据库主键为了优化数据存储
2.根据数据库的类型,考虑主键是否要顺序增长
  有些数据库是按主键的顺序逻辑存储的
3.主键的字段类型所占用空间要尽可能的小
  对于使用聚集索引方式的存储的表,每个索引后都会附加主键的信息
 
避免使用外键约束
1.降低数据导入的效率
2.增加维护成本
3.虽然不建议使用外键约束,但是相关联的列上一定要建立索引。

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

关于预留字段
1.无法准确的知道预留字段的类型
2.无法准确的知道预留字段中所存储的内容
3.严禁使用预留字段


反范式化表设计
    什么是反范式化:反范式化是针对范式化而言的,在前面介绍了数据库设计的第三范式,所谓的反范式化就是为了性能和读取效率的考虑而适当的对第三范式的要求进行违反,而允许存在少量的数据冗余,换句话来说反范式化就是使用空间来换取时间。
    为什么反范式化
        1. 减少表的关联数量
        2. 增加数据的读取效率
        3. 反范式化一定要适度


课程收获 :

     掌握了数据库设计的各个细节和一些原则和规范,对于以后设计表的帮助非常大,虽然是基础的一些东西,但是掌握这些规范非常重要。


https://img1.sycdn.imooc.com/632af20a0001d14b14450384.jpg

点击查看更多内容
0人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
手记
粉丝
1
获赞与收藏
0

关注TA,一起探索更多经验知识

同主题相似文章浏览排行榜

风间影月说签约讲师

50篇手记,涉及Java、MySQL、Redis、Spring等方向

进入讨论

Tony Bai 说签约讲师

146篇手记,涉及Go、C、Java、Python等方向

进入讨论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消