Mysql学习总结(85)——开发人员最应该明白的数据库设计原则
一、增删改尽量限定在本表进行
这条原则也是与三大范式有些相悖的,但这样做的好处非常明显。
a,从开销角度出发这样做的话,增删改的开销通常比多表要低。
b,便捷开发,在数据存储过程中,如果涉及多表操作,表越多,处理业务逻辑的代码就越多,在开发时难度也就越大。
c,可维护性高,但就是因为单表设计的业务代码会相对简单,所以日后的维护也会相对容易,反之,多表的业务代码庞杂,日后的维护也会非常的困难。
二、主键体现业务关系和流程顺序
企业级应用最大的难题就是梳理业务,理清业务模块之间的对应关系。在数据库中,表中包含的主键除了要体现对应关系外,还应该体现生成顺序或流程顺序的逻辑。
三、表足够内聚
单个表尽量代表一个业务模块且记录模块中的所有字段。由第一个原则推理出这个原则,因为在本表增删改查的开销小,所以,如果一个表足够的内聚,那么这个表就要尽量记录模块中的所有字段。如果之后业务模块内字段过多,可以进行分表处理,但如果一开始就是分开设计的,那么处理会很麻烦。
四、慎用中间表
在充分遵循三大范式的前提下,我们的设计就会有很多的中间表
Mysql学习总结(85)——开发人员最应该明白的数据库设计原则相关推荐
- 开发人员为什么必须要了解数据库锁详解
这篇文章主要给大家介绍了关于开发人员为什么必须要了解数据库锁的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用数据库具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧 1.锁? 1. ...
- mysql数据库设计的原则_MySQL数据库设计原则
转自 http://www.supidea.com/post/mysql_design_database.aspx MySQL数据库设计原则 MySQL对于成为一个非常快速的数据库服务器有着当之无愧的 ...
- 数据库设计原则与开发规范,你知道多少?
VOL 187 21 2020-12 今天距2021年11天 这是ITester软件测试小栈第187次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周早上 08:30准 ...
- MYSQL数据库设计原则
一.MYSQL数据库设计原则 1.核心原则 不在数据库做运算; cpu计算务必移至业务层; 控制列数量(字段少而精,字段数建议在20以内); 平衡范式与冗余(效率优先:往往牺牲范式) 拒绝3B(拒绝大 ...
- 数据库-优化-MYSQL数据库设计原则
MYSQL数据库设计原则 1.核心原则 不在数据库做运算; cpu计算务必移至业务层; 控制列数量(字段少而精,字段数建议在20以内); 平衡范式与冗余(效率优先:往往牺牲范式) 拒绝3B(拒绝大sq ...
- MySQL数据库系列之数据库设计原则
MySQL中数据库设计原则: 1.一般情况下,应该尽量使用可以正确存储数据的最小数据类型.数据类型不一样,存储的执行效率也不一样.最好使用适度的整型数据类型,例如int之类的数据,这样在做查询或者字段 ...
- mysql响一下_MySQL开发人员对缓存下了一道处决令,枪声已响!
多核机器变得很忙碌时,可扩展性就会很糟糕,于是MySQL数据库的开发人员决定要另谋出路. MySQL Server的一群开发人员已认定,MySQL的查询缓存(Query Cache)这项功能现已成了瓶 ...
- 【设计模式学习01】设计模式概述,UML图,软件设计原则
文章目录 1. 设计模式概述 1.1 软件设计模式的产生背景 1.2 软件设计模式的概念 1.3 学习设计模式的必要性 1.4 设计模式分类 2. UML图 2.1 类图概述 2.2 类图的作用 2. ...
- mysql创建表时添加范式_MySql三大范式与数据库设计和表创建常用语句
[数据库设计的三大范式] 1.第一范式(1NF First Normal Fromate):数据表中的每一列(字段),必须是不可拆分的最小单元.也就是确保每一列的原子性. 例如: userInfo: ...
最新文章
- Vivado之增量编译的实现
- Cacti Nagios Squid三个工具的一些区别
- LeetCode 106. 从中序与后序遍历序列构造二叉树(Construct Binary Tree from Inorder and Postorder Traversal)...
- 为什么添加Web引用后,客户端就能远程调用WebService了?
- 百度超级链XChain(8)部署开发
- 一行代码太长的解决方法
- php登录 cookie,使用cookie进行简单的PHP登录
- C++11多线程之 std::packaged_task
- JavaScript常用事件(1)
- 如何在 Mac 上查找和管理 Safari 下载?
- linux 禁 ip 分片,Linux iptables 设置允许(禁止)IP范围
- 扫码枪收银有手续费吗_生意好时最怕收银出故障,这几个扫码枪的常见问题你一定要知道...
- office2010专业版
- Android更换皮肤解决方案
- nohup java -jar 命令启动jar包,项目仍然会莫名其妙挂掉的解决方法
- 解读手机相机的各个参数(长曝光)
- C++——隐式类型转换
- Android - 集成高德地图API(搜索,地图,定位)
- C++模板及模板类(详解)
- 计算机专业投cssci,经管类CSSCI投稿经验与审稿时间 5
热门文章
- 7.18自学c++笔记
- 计算机科学导论数据运算,补基础:自学:计算机科学导论 第四章 数据运算(示例代码)...
- c语言goord函数,park、unpark、ord 函数使用方法(转)
- 知乎学了python_为什么要学 Python?
- vscode+vim使用技巧
- OpenCV4每日一练day7:视频加载、摄像头调用、视频文件保存
- node 后台重定向_node.js – 使用NodeJS重定向客户端并重新定义
- 设置mysql acquisition_MYSQL 7*24 高可用环境的部署
- 新增标签 html知识,互联网常识:html5有哪些新增标签
- 解码(四):avcodec_send_packet和avcodec_receive_frame函数讲解