MySQL---规范数据库设计
1.为什么需要设计
当数据库比较复杂的时候,我们就需要设计了
糟糕的数据库设计:
- 数据冗余,浪费空间
- 数据库插入和删除都会麻烦、异常 【屏蔽使用物理外键】
- 程序的性能差
良好的数据库设计: - 节省内存空间
- 保证数据库的完整性
- 方便我们开发系统
软件开发中,关于数据库的设计 - 分析需求:分析业务和需要处理的数据库的需求
- 概要设计:设计关系图 E-R 图
设计数据库的步骤:(个人博客)
- 收集信息,分析需求
- 用户表(用户登录注销,用户的个人信息,写博客,创建分类)
- 分类表 (文章分类,谁创建的)
- 文章表 (文章的信息) 评论表
- 友链表 (友链信息)
- 自定义表 (系统信息,某个关键的字,或者一些主字段) key : value
- 说说表 (发表心情 … id… content….create_time)
- 标识实体 (把需求落地到每个字段)
- 标识实体 之间的关系
- 写博客:user --> blog
- 创建分类:user –> category
- 关注:user –>user
- 友链:links
- 评论:user-user-blog
2.三大范式
为什么需要数据规范化?
- 信息重复
- 更新异常
- 插入异常
- 无法正常显示信息
- 删除异常
- 丢失有效的信息
第一范式(1NF)
原子性 : 保证每一列不可再分
第二范式(2NF)
前提:满足第一范式每张表只描述一件事情
第三范式(3NF)
前提:满足第一范式 和 第二范式
第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。
(规范数据库的设计)
规范性 和 性能的问题
关联查询的表不得超过三张表
- 考虑商业化的需求和目标,(成本,用户体验!) 数据库的性能更加重要
- 在规范性能的问题的时候,需要适当的考虑一下 规范性!
- 故意给某些表增加一些冗余的字段。(从多表查询中变为单表查询)
- 故意增加一些计算列 (从大数据量降低为小数据量的查询:索引)
MySQL---规范数据库设计相关推荐
- MySQL 规范数据库设计
为什么需要设计数据库 当数据库很复杂时,需要设计 糟糕的数据库设计 数据冗余,浪费空间 插入和删除很麻烦(屏蔽物理外键) 程序性能差 良好的数据库设计 数据紧凑,节省空间 保证数据的完整性 方便开发系 ...
- MySQL二十八规范数据库设计
MySQL二十八:规范数据库设计 糟糕的数据库设计: ●数据冗余,浪费空间 ●数据库插入和删除都会麻烦.异常[ 屏蔽使用物理外键] ●程序的性能差 良好的数据库设计: ●节省内存空间 ●保证数据库的完 ...
- 第63天学习打卡(MySQL 测试索引 索引原则 数据管理和备份 规范数据库设计)
7.2测试索引 CREATE TABLE `app_user` ( `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, `name` VARCHAR(5 ...
- MySQL:规范数据库设计
文章目录 十.规范数据库设计 10.1 为什么需要设计 10.1.1 糟糕的数据库设计 10.1.2 良好的数据库设计 10.2 软件开发中,关于数据库的设计 10.3 设计数据库的步骤:(个人博客) ...
- 权限管理和备份;规范数据库设计
8.权限管理和备份 8.1.用户管理 SQL yog:可视化管理 **SQL命令操作 ** 用户表:mysql.user 本质:对这张表进行增删改查 用户的权限管理 -- ============== ...
- 第九章——规范数据库设计
第九章--规范数据库设计 9.1 为什么需要设计数据库? 糟糕的数据库 数据冗余,浪费空间 数据库的插入和删除都会麻烦.异常[屏蔽使用物理外键] 程序性能差 良好的数据库 节省内存空间 保证数据的完整 ...
- MySQL之数据库设计三范式
目录 一.简介 第一范式 第二范式 第三范式 结语 学习计划: 一.简介 我们数据库表设计的时候需要尽可能的遵循三范式,具体是 第一范式(1NF): 强调的是列的原子性,即列不能够再分成其他几列, ...
- erwin教程 mysql_如何使用Erwin进行基于MySQL的数据库设计
如何使用Erwin进行基于MySQL的数据库设计 文章作者:网友投稿 发布时间:2008-09-01 13:44:45 来源:网络 ERwin是常用的进行数据库设计的工具,支持众多的数据库,可惜不支持 ...
- mysql 企业数据库设计_MySQL数据库设计
MYSQL数据库设计规范 1.数据库命名规范 采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成; 命名简洁明确(长度不能超过30个字符); 例如:user, stat ...
- 大数据JavaWeb之MySQL基础---数据库设计、备份与还原
数据库的设计: 多表之间的关系: 分类: 一对一(了解): 如:人和身份证. 分析:一个人只有一个身份证,一个身份证只能对应一个人. 一对多(多对一): 如:部门和员工. 分析:一个部门有多个员工,一 ...
最新文章
- mini2440通过JLink烧写BootLoader到Nor Flash
- 考研专业课计算机网络调剂,计算机网络信息中心2019年硕士研究生接收调剂信息公告...
- 2020年推荐系统工程师炼丹手册
- 猜数游戏,随机目标数字,直到猜中退出
- 【基础】算法时空复杂度【OI缩水版】
- 开源公司黄页之阿里巴巴开源软件推荐(二)
- 手机组态软件 APP监控台达PLC C#全套源代码,C#开发上位机手机APP
- react小书 笔记6
- 二叉树非递归程序c语言,二叉树非递归遍历C语言实现
- html页眉页脚独立,页眉页脚怎么单独设置
- 移动数据安全防护措施有哪些
- 《SLAM十四讲》7.6 三角测量 triangulation.cpp
- 多人在线编辑文档 开发_十个在线小工具,科研amp;工作必备神器!
- Html5--(span标签)
- CodeLite IDE for windows (一)安装及HelloWorld
- 【行业基础】UV打印机喷头波形和墨水关系
- 蛋壳公寓信息/信息网爬取/小猪短租/豆瓣/拉钩/人民邮电报/百度电视剧/加载更多-获取字符串中间任意内容
- warning:suggest parentheses around assignment used as truth value
- C# Word Excel Could not load file or assembly ‘office, Version=15
- 《毛毛虫组》第一次作业:团队亮相
热门文章
- 制作一个浪漫温馨的生日礼物送她~html+css+javascript蓝色梦幻海洋3D相册(含音乐)
- ExecutorService等待线程完成后优雅结束
- 【剑指 Offe】剑指 Offer 17. 打印从1到最大的n位数
- 学python吧-Python为什么这么厉害? 不想成为专业码农? 来学习Python吧!
- 英语学习——长难句01
- android edittext numberdecimal,android – 如何在“手机”软键盘上使用InputType = numberDecimal?...
- win10 linux安卓模拟器,WIN10电脑安卓模拟器逍遥安卓唯一真正支持
- c语言的内部名和外部名,C语言 external
- 图像可视化——matplotlib绘图入门基础
- 明天起,鄂尔多斯这些地方要停电!涉及伊旗、达旗等6个旗区