MySQL 数据库设计 笔记与总结(1)需求分析
数据库设计的步骤
① 需求分析
② 逻辑设计
使用 ER 图对数据库进行逻辑建模
③ 物理设计
④ 维护优化
a. 新的需求进行建表
b. 索引优化
c. 大表拆分
【需求分析】
① 了解系统中所要存储的数据(对象 / 实体)
a. 实体与实体之间的关系(1 对 1,1 对 多,多 对 多)
b. 实体所包含的属性有哪些
c. 哪些属性或属性的组合可以唯一标识一个实体
② 了解数据的存储特点
③ 了解数据的生命周期
【例】
一个小型电商网站,核心模块包括:用户、商品、订单、购物车、供应商。
① 用户模块
包括属性:用户名、密码、电话、邮箱、身份证号、地址、姓名、昵称
可选唯一标识属性:用户名、身份证、电话
存储特点:随系统上线时间逐渐增加,需要永久存储
② 商品模块
包括属性:商品编码、商品名称、商品描述、商品品类、供应商名称、重量、有效期、价格
可选唯一标识属性:(商品名称、供应商名称的组合)、(商品编码)
存储特点:对于下线商品可以归档存储
③ 订单模块
包括属性:订单号、用户姓名、用户电话、收货地址、商品编号、商品名称、数量、价格、订单状态、支付状态、订单类型
可选唯一标识属性:(订单号)、(用户姓名、商品、下单日期的组合属性)
存储特点:永久存储(分表、分库存储)
④ 购物车 用户保存用户购物时选对的商品
包括属性:用户名、商品编号、商品名称、商品价格、商品描述、商品分类、商品数量
可唯一标识属性:(用户名、商品编号、加入时间)、(购物车编号)
存储特点:不永久存储(设置归档、清理规则)
⑤ 供应商 用于保存所销售商品的供应商信息
包括属性:供应商编号、供应商名称、联系人、电话、营业执照号、地址、法人
可选唯一标识:(供应商编号)、(营业执照号)
存储特点:永久存储
【模块间的关系】
用户 ← 1对多→ 订单
↑ ↑
1对多 多对多
↓ ↓
购物车 ←多对多→ 商品 ← 多对多 → 供应商