1.为什么需要设计

当数据库比较复杂的时候,我们就需要设计了
糟糕的数据库设计:

  • 数据冗余,浪费空间
  • 数据库插入和删除都会麻烦、异常 【屏蔽使用物理外键】
  • 程序的性能差
    良好的数据库设计:
  • 节省内存空间
  • 保证数据库的完整性
  • 方便我们开发系统
    软件开发中,关于数据库的设计
  • 分析需求:分析业务和需要处理的数据库的需求
  • 概要设计:设计关系图 E-R 图

设计数据库的步骤:(个人博客)

  • 收集信息,分析需求

    • 用户表(用户登录注销,用户的个人信息,写博客,创建分类)
    • 分类表 (文章分类,谁创建的)
    • 文章表 (文章的信息) 评论表
    • 友链表 (友链信息)
    • 自定义表 (系统信息,某个关键的字,或者一些主字段) key : value
  • 说说表 (发表心情 … id… content….create_time)
  • 标识实体 (把需求落地到每个字段)
  • 标识实体 之间的关系
    • 写博客:user --> blog
    • 创建分类:user –> category
    • 关注:user –>user
    • 友链:links
    • 评论:user-user-blog

2.三大范式

为什么需要数据规范化?

  • 信息重复
  • 更新异常
  • 插入异常
    • 无法正常显示信息
  • 删除异常
    • 丢失有效的信息

第一范式(1NF)
原子性 : 保证每一列不可再分
第二范式(2NF)
前提:满足第一范式每张表只描述一件事情
第三范式(3NF)
前提:满足第一范式 和 第二范式
第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。

(规范数据库的设计)
规范性 和 性能的问题
关联查询的表不得超过三张表

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

MySQL---规范数据库设计相关推荐

  1. MySQL 规范数据库设计

    为什么需要设计数据库 当数据库很复杂时,需要设计 糟糕的数据库设计 数据冗余,浪费空间 插入和删除很麻烦(屏蔽物理外键) 程序性能差 良好的数据库设计 数据紧凑,节省空间 保证数据的完整性 方便开发系 ...

  2. MySQL二十八规范数据库设计

    MySQL二十八:规范数据库设计 糟糕的数据库设计: ●数据冗余,浪费空间 ●数据库插入和删除都会麻烦.异常[ 屏蔽使用物理外键] ●程序的性能差 良好的数据库设计: ●节省内存空间 ●保证数据库的完 ...

  3. 第63天学习打卡(MySQL 测试索引 索引原则 数据管理和备份 规范数据库设计)

    7.2测试索引 CREATE TABLE `app_user` ( `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, `name` VARCHAR(5 ...

  4. MySQL:规范数据库设计

    文章目录 十.规范数据库设计 10.1 为什么需要设计 10.1.1 糟糕的数据库设计 10.1.2 良好的数据库设计 10.2 软件开发中,关于数据库的设计 10.3 设计数据库的步骤:(个人博客) ...

  5. 权限管理和备份;规范数据库设计

    8.权限管理和备份 8.1.用户管理 SQL yog:可视化管理 **SQL命令操作 ** 用户表:mysql.user 本质:对这张表进行增删改查 用户的权限管理 -- ============== ...

  6. 第九章——规范数据库设计

    第九章--规范数据库设计 9.1 为什么需要设计数据库? 糟糕的数据库 数据冗余,浪费空间 数据库的插入和删除都会麻烦.异常[屏蔽使用物理外键] 程序性能差 良好的数据库 节省内存空间 保证数据的完整 ...

  7. MySQL之数据库设计三范式

    目录 一.简介 第一范式 第二范式 第三范式 结语 学习计划: 一.简介   我们数据库表设计的时候需要尽可能的遵循三范式,具体是 第一范式(1NF): 强调的是列的原子性,即列不能够再分成其他几列, ...

  8. erwin教程 mysql_如何使用Erwin进行基于MySQL的数据库设计

    如何使用Erwin进行基于MySQL的数据库设计 文章作者:网友投稿 发布时间:2008-09-01 13:44:45 来源:网络 ERwin是常用的进行数据库设计的工具,支持众多的数据库,可惜不支持 ...

  9. mysql 企业数据库设计_MySQL数据库设计

    MYSQL数据库设计规范 1.数据库命名规范 采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成; 命名简洁明确(长度不能超过30个字符); 例如:user, stat ...

  10. 大数据JavaWeb之MySQL基础---数据库设计、备份与还原

    数据库的设计: 多表之间的关系: 分类: 一对一(了解): 如:人和身份证. 分析:一个人只有一个身份证,一个身份证只能对应一个人. 一对多(多对一): 如:部门和员工. 分析:一个部门有多个员工,一 ...

最新文章

  1. mini2440通过JLink烧写BootLoader到Nor Flash
  2. 考研专业课计算机网络调剂,计算机网络信息中心2019年硕士研究生接收调剂信息公告...
  3. 2020年推荐系统工程师炼丹手册
  4. 猜数游戏,随机目标数字,直到猜中退出
  5. 【基础】算法时空复杂度【OI缩水版】
  6. 开源公司黄页之阿里巴巴开源软件推荐(二)
  7. 手机组态软件 APP监控台达PLC C#全套源代码,C#开发上位机手机APP
  8. react小书 笔记6
  9. 二叉树非递归程序c语言,二叉树非递归遍历C语言实现
  10. html页眉页脚独立,页眉页脚怎么单独设置
  11. 移动数据安全防护措施有哪些
  12. 《SLAM十四讲》7.6 三角测量 triangulation.cpp
  13. 多人在线编辑文档 开发_十个在线小工具,科研amp;工作必备神器!
  14. Html5--(span标签)
  15. CodeLite IDE for windows (一)安装及HelloWorld
  16. 【行业基础】UV打印机喷头波形和墨水关系
  17. 蛋壳公寓信息/信息网爬取/小猪短租/豆瓣/拉钩/人民邮电报/百度电视剧/加载更多-获取字符串中间任意内容
  18. warning:suggest parentheses around assignment used as truth value
  19. C# Word Excel Could not load file or assembly ‘office, Version=15
  20. 《毛毛虫组》第一次作业:团队亮相

热门文章

  1. 制作一个浪漫温馨的生日礼物送她~html+css+javascript蓝色梦幻海洋3D相册(含音乐)
  2. ExecutorService等待线程完成后优雅结束
  3. 【剑指 Offe】剑指 Offer 17. 打印从1到最大的n位数
  4. 学python吧-Python为什么这么厉害? 不想成为专业码农? 来学习Python吧!
  5. 英语学习——长难句01
  6. android edittext numberdecimal,android – 如何在“手机”软键盘上使用InputType = numberDecimal?...
  7. win10 linux安卓模拟器,WIN10电脑安卓模拟器逍遥安卓唯一真正支持
  8. c语言的内部名和外部名,C语言 external
  9. 图像可视化——matplotlib绘图入门基础
  10. 明天起,鄂尔多斯这些地方要停电!涉及伊旗、达旗等6个旗区