为了账号安全,请及时绑定邮箱和手机立即绑定

【备战春招】第3天 数据库设计之需求分析

标签:
数据库

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

课程章节:需求分析

课程讲师:sqlercn

课程内容:

什么是数据库设计?

学一个东西之前,先明确它的概念
数据库设计就是根据业务系统的具体需要,结合我们所选用的DBMS(数据库管理系统),为这个业务系统构造出最优的数据存储模型。并建立好数据库中的表结构与表与表之间的关联关系的过程。使之能有效的对应用系统中的数据进行存储,并可以高效的对已经存储的数据进行访问
注意:这里提到的数据库系统包括但不仅限于Mysql,Mysql只是其中一种

数据库设计的步骤
  • 步骤
    需求分析 —> 逻辑设计 —> 物理设计 —> 维护优化
  • 需求分析
    数据是什么?数据有哪些属性?数据和属性各自的特点有哪些?
  • 逻辑设计
    使用ER图对数据库进行逻辑建模
    注:逻辑设计不针对与某一个数据库管理系统,它对所有的数据库管理系统都是通用的
  • 物理设计
    选择一个数据库管理系统,根据数据库自身的特点把逻辑设计转换为物理设计
  • 维护优化
    1. 对新的需求进行建表
    2. 索引优化
    3. 大表拆分
      注:接到新的需求的时候,也要通过以上几步(需求分析、设计…)再进行具体的建表工作
如何进行需求分析
  1. 了解系统中所要存储的数据
  2. 了解数据的存储特点
    • 比如有些数据是有时效性的,可以采取过期清理或归档的方式进行存储
    • 还有具有增长量大但不是核心数据的,可以采取分库分表的方式
  3. 了解实体与实体之前的关系(1对1、1对多、多对多)
  4. 了解实体有哪些属性
  5. 了解哪些属性或属性组合可以唯一标识一个实体
建议
  • 对于数据增长量大且一定要存储到数据库中的,建议先定义好数据库的归档和清理规则

需求分析举例

此次举例一个小型电商网站,有如下模块“用户模块、商品模块、订单模块、购物车模块、供应商模块

用户模块
  • 作用:记录用户信息
  • 属性:用户名、密码、电话、邮箱、身份证号、地址、姓名、昵称……
  • 可选唯一标识属性:用户名、身份证号、电话
  • 存储特点:数据量和系统上线时间成正比、数据不能归档需要永久存储
商品模块
  • 作用:用于存储网站中的商品
  • 属性:商品编码、商品名称、商品描述、商品品类、供应商名称、重量、有效期、价格……
  • 可选唯一标识属性:(商品名称、供应商名称)、商品编码
  • 存储特点:部分商品(下线的商品)可以归档存储
订单模块
  • 作用:用于存储用户购买商品的订单
  • 属性:订单号、用户姓名、用户电话、收货地址、商品编号、商品名称、数量、价格、订单状态、支付状态、订单类型……
  • 可选唯一标识属性:订单号
  • 存储特点:数据量大,考虑分库分表
购物车模块
  • 作用:用于保存用户购物时选购的商品
  • 属性:用户名、商品编号、商品名称、商品价格、商品描述、商品分类、加入时间、商品数量……
  • 可选唯一标识属性:(用户名、商品编号、加入时间)、购物车编号
  • 存储特点:无需永久存储,可设置归档、清理规则
供应商模块
  • 作用:用于保存商品的供应商的信息
  • 属性:供应商编号、供应商名称、联系人、电话、营业执照号、地址、法人
  • 可选唯一标识:供应商编号、营业执照号
  • 存储特点:数据量不大,需要永久存储
实体关系图
  • 订单和商品:一个订单可以包含多个商品、一个商品可以被多个订单包含
  • 商品和供应商:一个商品可以被多个供应商提供、一个供应商可以提供多个商品
  • 订单和用户:一个订单只能是一个用户的,一个用户可以有多个订单
  • 用户和购物车:用户表的一条记录可以对应购物车表的多条记录,购物车表的一条记录只能对应用户表的一条记录
    图片描述

课程收获

跟着老师学到了正常的数据库设计流程,在以往的数据库搭建工作中,往往随着需求的增多,数据库表之间越来越乱,难以维护,在本次课程的学习后,一定会对该问题有所改善

图片描述

点击查看更多内容
TA 点赞

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

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消