1、为什么要设计数据库

糟糕的数据库设计:

  • 数据冗余,浪费空间。
  • 数据插入和删除都会很麻烦,甚至产生异常。
  • 程序的性能差。

良好的数据库设计:

  • 节省空间。
  • 保证数据的完整性。
  • 方便系统开发。

2、数据库设计步骤

  1. **需求分析:**分析业务需要处理的数据;
  2. **概要设计:**设计实体关系图(E-R图);
  3. **详细设计:**明确各个表的字段。

**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/ 发布。