数据库设计过程

设计过程

需求分析 > 逻辑设计 > 物理设计 > 维护优化

需求分析

  • 一张表需要存什么信息。用户信息有 名称手机号身份证年龄
  • 可以做唯一标识的字段: 手机号身份证
  • 存储特点: 永久存储还是会删除
  • 与其他表的联系

逻辑设计

  • 注意事项:
    更新异常:更新时应该更新指定的一条
    删除异常:删除时应该删除指定的一条
    数据冗余:数据重复出现
  • 设计范式
  1. 第一范式:一张表应该是一张二维表,对应一个值

bad

名称 手机号 用户信息
年龄 地址
用户名1 1322672833 5 中国

good

名称 手机号 年龄 地址
用户名1 1322672833 5 中国
  1. 第二范式:消除一张表中多种依赖关系,属性只依赖主键
    bad:更新异常、数据冗余
商品名称 供应商 价格
可乐 供应商1 30
可乐 供应商2 30

good

商品id 商品名称 价格
1 可乐 30
供应商id 供应商 供应商联系方式
1 供应商1 132234234
2 供应商2 144434134
商品id 供应商id
1 1
1 2
  1. 第三范式: 消除一行中的字段有依赖关系
    bad
商品名称 价格 分类 分类描述
手机 1 数码 电子产品
纸巾 2 生活 日常用品

good

商品名称 价格 分类id
手机 1 1
纸巾 2 2
分类id 分类名称 分类描述
1 数码 电子产品
2 生活 日常用品

物理设计

  • 数据库选择:Oracle、MySql、PostgrcSQL ...
  • 存储引擎选择: Innodb
  • 表、字段命名规范:单词_分割命名、尽量不用缩写
  • 字段数据类型选择:优先选择数字类型或占用字节小的
  • 使用数据库设计软件:pdman powerdesign

维护优化

  • 维护数据字典:创建表增加备注、保存好使用数据库设计软件设计的图形

参考资料

数据库设计那些事

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。