文档详情

数据库规范文档.doc

发布:2017-02-03约4.44千字共6页下载文档
文本预览下载声明
后台数据库规范 修订记录 日期 版本 描述 作者 2015-11-30 0.1 初稿 一 表、字段、索引设计规范 数据中表示最基础的元素,表中的每个字段名,在字段上的索引建立都需要规范化和统一化,具体的措施如下: 表名、字段名必须使用小写字母,多个单词以“_”分割; 表名、字段名必须不超过35个字符; 表名、字段名使用有意义的单词,禁止使用MYSQL关键字,不超长不使用简写; 表名、字段名必须有注释,尤其是状态字段要详细说明每个状态的意义; 不同的系统表名以系统名简称开头; 表一律使用InnoDB存储引擎,面向事务处理,特殊情况需知会; 存储浮点类型使用DECLIMAL代替FLOAT和DOUBLE; 尽可能控制字段长度,字段长度以2的幂次方长度为标准; 索引字段不允许为空,设置默认值; 建表的时候不允许设定字符集; 尽可能不使用TEXT、BOLB类型 存储日期用DATETIME类型,不用VARCHAR类型存储时间类型 唯一索引必须按照“uidx_表名简写_字段名1_字段名2[_字段名]”进行命名 非唯一索引必须按照“idx_表名简写_字段名1_字段名2[_字段名]”进行命名 索引名不超过35个字符,若字段过多,使用简写 视图必须以“vw_”开头,例:TEST表上建一个视图:vw _test 学会用explain判断语句的执行效率 SQL语句不允许全表扫(类型表除外),后续会监控全表扫,如发现必须整改 二 储过程、函数、事件命名规范 在编写存储过程,函数,事件是按下列规则命名: 存储过程名必须以“pro_[系统名]_”开头,函数以“fun_[系统名]_”开头,事件以“e_[系统名]_”开头,新增前先看看是否已经存在同名 存储过程、函数、事件名必须大写,入参以“i_”开头,出参以“o_”开头,出入参以“io_”开头,其他定义参数以“v_”开头,游标以“cur_”开头 存储过程、函数、事件中表的前缀命名规范: 基础表:com_table_name, common,用户信息包含在内 本地生活:lbs_table_name 基于位置的应用 应用商城:app_table_name 推广app 个人中心:pcs_table_name person center system 设备相关:eqm_table_name equipment DB框架:event_table_name 定时任务框架 三 SQL脚本文件规范 新建一个db开发流 ,根据版本创建不同的文件夹 脚本命名:项目名称_ id_序号_文件内容类型_创建人名全拼 序号规范:01、10 同一个任务下的sql最好通过序号标示出执行顺序,也可以给部署人员特殊部署说明 文件内容类型 描述 tab 对表相关操作,新建表时索引可以放在此文件中 idx 对索引相关操作 pro 对存储过程相关操作 fun 对函数相关操作 job 对定时任务相关操作 dml 批量处理数据操作,insert、delete、update grant 授权语句 fix 修复脚本,不通过版本管理器移交部署 例: zjcs-commons -_01_tab_tag.sql tag是标记号,每个开发人员的sql脚本需要加入注释和表的字段说明,所用开发人员的脚本在同一个sql文件中。 SQL脚本文件请在开发环境执行通过后在移交 移交脚本并且部署成功后,请尽量不要对已部署成功脚本做修改,如需修改,请先给DBA或有权限的测试人员fix脚本,清理掉会影响该脚本执行的内容 脚本用UTF-8无BOM格式保存,保证数据库脚本编码的一致性,避免出现乱码。 四 表、字段、索引语法规范 /*删除表*/ DROP TABLE test_user_info; /*创建表*/ CREATE TABLE test_user_info ( created_user INT(32) NOT NULL COMMENT 创建人 , date_created DATETIME NOT NULL COMMENT 创建时间 , updated_user INT(32) NOT NULL COMMENT 修改人 , date_updated DATETIME NOT NULL COMMENT 修改时间 , id_test_user_info INT(32) NOT NULL AUTO_INCREMENT COMMENT 主键id , user_name VARCHAR(20) NOT NULL COMMENT 用户姓名 , login_name VARCHAR(20) NOT NULL
显示全部
相似文档