你能说说你理解的数据库规范吗?

栏目: 数据库 · 发布时间: 5年前

你能说说你理解的数据库规范吗?

上一篇简单的说了下,自己公司的接口规范和上线规范,这次说下关于数据库方面的规范,希望能够帮助到大家。

1、首先是工具,我们用的是 Mysql 数据库,工具是Workbench,这个 工具 是专门为Mysql设计的数据库建模工具,你可以用它进行设计和创建新的数据库图示,在windows上面我们大多用的是PowerDesiger,在mac上用workbench目前来看还是挺好用的,无论是建立数据库文档,ER图,数据库的迁移都还是很贴心的。

2、数据库字符集UTF-8,统一字符集,也就避免了麻烦的乱码转码问题,UTF-8几乎是好多工具的通用码,特殊的列使用扩展字符集。

3、每个文件都有一个script文件,这个script文件里面有的应该是这个项目的数据库设计ER图,还有该项目数据库初始的 sql 语句,任何有关于该项目的数据库更改,都应该首先更改该script文件,并且标注日期,确保该script文件是正确的据库设计,因为我们在上线的时候要给运维上传的sql语句就是从这个ER图导出来的。

4、相关联的业务数据表的名字要使用相同的前缀,确保一个业务的多个表在大量表中处于相邻位置。这点觉得还是很贴心的。

5、数据经常变化的放到一张表;数据不变化的放到一张表;数据不经常变化的一张表。

6、存储引擎必须使用InnoDB,InnoDB支持事务、行级锁、并发性能更好。

7、不可使用存储过程、视图、触发器,高并发大数据的互联网业务,如果并发量太大,使用这些会把数据库拖垮,把业务逻辑放到服务层具备更好的扩展性,需求有所变化的时候也更好修改,而不用去修改繁琐的sql语句,并且能够轻易简单的 实现增加机器就增加性能,数据库的专长在于存储和索引。专业的事情就让专业的人来做。

8、禁止使用Blob和Clob类型的字段,可以使用单独的库、单独的表来存储大文本的数据,这样做的话,当运维想要处理、备份数据的时候,这样的表可以针对性的优化,不用在意一些别的因素。

9、表名使用下划线分隔,id主键统一命名为id BIGINT(20),数据写入时可以提高插入性能。

10、每个表中必须包含字段createTime字段,创建时间,确保未来默认排序。

11、外键禁止关联。外键会导致表和表之间的耦合,update和delete都会涉及到相关联的表,十分影响sql性能,还有可能会造成死锁。

12、保存时间相关的数据,要使用时间戳的格式,因为在未来可能会涉及到时区的问题,而时间戳可以完全避免该问题;保存货币相关的数据,要保存最小货币的数量,避免有小数点,因为可能会引起数据精度问题,导致数据不准确。

13、索引命名定义规则,其中一定要包括表名+列名,来确保该索引在整个数据库中是唯一的。

14、建立组合索引的同时要把区分度较高的放在前面,这样能够更加有效的过滤数据。

以上都是自己开发过程中遵守的,并且感觉很高效的数据库规范,简单整理下,沉淀下来,希望能帮助到这个公众号的读者。

这样的分享会一直持续,你的关注,转发和好看是对我最大的支持,感谢。


以上所述就是小编给大家介绍的《你能说说你理解的数据库规范吗?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

JavaScript面向对象编程指南

JavaScript面向对象编程指南

斯托扬 / 凌杰 / 人民邮电出版社 / 2013-3 / 59.00元

《JavaScript面向对象编程指南》内容包括:JavaScript作为一门浏览器语言的核心思想;面向对象编程的基础知识及其在JavaScript中的运用;数据类型、操作符以及流程控制语句;函数、闭包、对象和原型等概念,以代码重用为目的的继承模式;BOM、DOM、浏览器事件、AJAX和JSON;如何实现JavaScript中缺失的面向对象特性,如对象的私有成员与私有方法;如何应用适当的编程模式,......一起来看看 《JavaScript面向对象编程指南》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具