数据库设计与三大范式
1、为什么要设计数据库
糟糕的数据库设计:
- 数据冗余,浪费空间。
- 数据插入和删除都会很麻烦,甚至产生异常。
- 程序的性能差。
良好的数据库设计:
- 节省空间。
- 保证数据的完整性。
- 方便系统开发。
2、数据库设计步骤
- **需求分析:**分析业务需要处理的数据;
- **概要设计:**设计实体关系图(E-R图);
- **详细设计:**明确各个表的字段。
**3、示例:**如何设计一个博客网站的数据库
一个博客网站一般需要有:1个分类表、1个文章表、1个评论表、1个友情链接表、1个用户管理表等。
-
分类表
主要包括:分类ID、分类名称、创建用户的ID等。
-
文章表
主要包括:文章ID、文章标题、文章的分类、文章的作者、文章的创建时间、文章的修改时间、文章内容、评论、点赞数量、收藏数量等。
-
评论表
主要包括:评论ID、所属文章的ID、评论人、评论内容、评论时间、回复用户的ID等。
-
友情链接表
主要包括:友链ID、友链名称、网站链接、友链序号等。
-
用户管理表
主要包括:用户ID、用户名、密码、手机号码、邮箱、性别、年龄、头像链接地址、个性签名等。
4、数据库设计的三大范式(了解)
4.1、第一范式
第一范式:数据库中所有表的每一列都不可再拆分。
(即:字段要满足原子性。)
4.2、第二范式
第二范式:在满足第一范式的基础上,每张表只描述一件事情。
4.3、第三范式
第三范式:在满足第二范式的基础上,需要确保数据库表中的每一列都与主键直接相关,而不能间接相关。
附:规范性与数据库性能取舍
对于一些数据量大的复杂数据库而言,若我们要刻意地去满足数据库设计的三大范式,往往需要设计很多表,这将导致数据库在联结查询时性能大幅降低。因此,实际开发中,数据库设计不一定要完全满足三大范式。
**注:**阿里巴巴开发规范规定:联结查询不得超过3个表。
关注**“阿汤笔迹”** 微信公众号,获取更多学习笔记。
原文地址:http://www.atangbiji.com/2022/07/10/databaseDesign
博主最新文章在个人博客 http://www.atangbiji.com/ 发布。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 阿汤笔迹!