欢迎来到知了堂!
联系电话:知了堂-电话号码 028-62016472

说说那些程序员应该遵守的数据库规范-知了堂

说说那些程序员应该遵守的数据库规范

  本文主要说下关于数据库方面的规范,希望能够帮助到大家。

  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、建立组合索引的同时要把区分度较高的放在前面,这样能够更加有效的过滤数据。

  以上都是自己开发过程中遵守的,并且感觉很高效的数据库规范,简单整理下,沉淀下来,希望能帮助到读者们。
      
       版权声明:本文来源于网络,由知了堂搜集整理,仅供大家学习数据库时使用

  知了堂是成都天府软件园重点扶持的互联网+教育公司,针对目前IT行业人才需求,知了堂重点开设Java软件工程师、前端开发工程师、python大数据工程师、信息安全工程师等核心课程,采用“差异化”培养模式,用“定级定星”来制定个性化学习方案,确保学员学得懂,学得会,真正掌握入行的核心技能,具备项目开发实战经验,实现学习和工作无缝对接。