16.MySQL

9、规范数据库设计

9.1为什么需要设计

当数据库比较复杂的时候,我们就需要设计了
糟糕的数据库设计:
  数据冗余,浪费空间
  数据库插入删除都很麻烦、异常(屏蔽使用物理外键)
  程序性能差
  
良好的数据库设计:
  节省内存空间
  保证数据库的完整性
  方便我们开发系统
  
软件开发中,关于数据库的设计
  分析需求:分析业务和需要处理的数据库的需求
  概要设计:设计关系图E-R图
  
  
设计数据库的步骤:(以个人博客为例)
  收集信息,分析需求
·用户表(用户登录 注销、用户的个人信息,写博客,创建分类)
·分类表(文章分类,谁创建的)
·文章表(文章的信息)
·友链表(友链信息)
·自定义表(系统信息,某个关键字的信息,或者一些主字段)key:value
  
  标识实体(把需求落地到每个字段)
  标识实体之间的关系
·写博客:user->blog
·创建分类:user->category
·关注:user->user
·友链:links
·评论:user-user-blog
  
  

9.2三大范式

为什么需要数据规范化?
·信息重复
·更新异常
·插入异常
  无法正常显示信息
·删除异常
  丢失有效信息
  
  

三大范式

第一范式
原子性:保证每一列不可再分
  
第二范式
前提:第一范式
每张表只描述一个事情
  
第三范式
前提:满足第一和第二范式
第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。
  
  
规范和性能取舍的问题
关联查询表不得超过三张表
·考虑商业化的需求和目标,(成本,用户体验!)数据库的性能更加重要
·在规范性能是问题的时候,需要适当考虑一下规范性!
·故意给某些表增加一些冗余的字段。(降低性能来提升体验,从多表查询中变为单表查询)
·故意增加一些计算列(从大数据量降低为小数据量查询;或增加索引)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值