MySQL之规范数据库设计

九、规范数据库设计

1.为什么需要设计?

1)糟糕的数据库设计
①数据冗余,浪费空间。
②数据库插入和删除都会很麻烦、出现异常(屏蔽使用物理外键)。
③程序的性能差。
2)良好的数据库设计
①节省内存空间。
②保证数据库的完整性。
③方便开发系统。
3)软件开发中,关于数据库的设计
①分析需求:分析业务和需要处理的数据库需求。
②设计概要:设计关系图E-R图。
4)设计数据库的步骤以个人博客为例
①收集信息,分析需求。
Ⅰ用户表(用户登录注销、用户的个人信息、写博客、创建分类)
Ⅱ分类表(文章分类、谁创建的)
Ⅲ文章表(文章的信息)
Ⅳ友链表(友链信息)
Ⅴ自定义表(系统信息、某个关键字或一些主字段)
②标识实体(把需求落实到每个字段)。
③标识实体之间的关系。
Ⅰ写博客:user——>blog
Ⅱ创建分类:user——>category
Ⅲ关注:user——>user
Ⅳ友链:links
Ⅴ评论:user——>user——>blog

2.三大范式

为什么需要数据规范?
不规范可能造成的问题:信息重复、更新异常、插入异常(无法正常显示信息)、删除异常(丢失有效信息)
1)第一范式(1NF)
原子性:保证每一列不可再分。
2)第二范式(2NF)
前提:满足第一范式。
每张表只描述一件事情。
3)第三范式(3NF)
前提:满足第一范式和第二范式。
需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。
(规范数据库的设计)
参考博客园链接:https://www.cnblogs.com/wsg25/p/9615100.html
上述博客文章

4)规范性和性能的问题

阿里规定:关联查询的表不得超过三张表。

①考虑商业化的需求和目标(成本、用户体验),数据库的性能更加重要。
②在考虑性能的问题的时候,需要适当的考虑一下规范性。
③故意给某些表增加一些冗余的字段(从多表查询变为单表查询)。
④故意增加一些计算列(从大数据量降低为小数据量的查询:索引)。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值