通用MySQL数据库规范

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

通用MySQL数据库规范文档

[V1.3]

拟制人:

审核人:

批准人:

2017年11月3日

文件变更记录

目录

1总则 (3)

1.1目的 (3)

1.2适用范围 (3)

1.3管理职责 (3)

1.3.1开发项目组 (3)

1.3.2运维部 (3)

2具体规范 (4)

2.1字符集 (4)

2.2命名规则 (4)

2.2.1数据库名称命名规则 (4)

2.2.2表名称命名规则 (5)

2.2.3字段命名规则 (5)

2.2.4索引命名规则 (5)

2.3字段类型选择 (6)

2.3.1数字类型 (6)

2.3.2字符串类型 (7)

2.3.3 text 和blob 类型 (8)

2.3.4 datetime 和timestamp (8)

2.4默认情况 (8)

2.4.1 主键 (8)

2.4.2默认值 (9)

2.5存储引擎 (9)

2.6数据库版本 (9)

1 总则

1.1 目的

为使XXXX公司(以下简称“ XX”内部MySQL项目数据库设计遵循标准化、统一化原则,便于每个开发工程师了解不同业务逻辑关系,同时降低bug 产生量和问题排查时间。最终使得XX 内部所有MySQL项目数据库设计条理有序,关系明确,特制订本使用规范。

1.2 适用范围

本规范适用于XX 内部所有MySQL 项目数据库设计。

1.3 管理职责

1.3.1 开发项目组

(1)开发工程师依据该规范设计数据库。

(2)各项目组技术负责人先内部审核数据库设计方案。

1.3.2 运维部

(1)由运维部严格把关各个项目组初审提交的数据库设计方案。对于违法该规范,数据库管理员须要求其重新设计或修改,对于符合该规范可在服务器执行

2 具体规范

2.1 字符集

凡涉及数据库表结构须统一utf8 字符集,包括客户端和服务端1. 客户端字符集

character_set_client= utf8 ;

2. 连接层字符集

character_set_connection= utf8 3. 数据库默认字符集

character_set_database= utf8

4. 默认内部操作字符集

character_set_server= utf8

5. 系统元数据(字段名等)字符集character_set_system= utf8

6. 查询结果字符集

character_set_results= utf8

2.2 命名规则

2.2.1 数据库名称命名规则

数据库命名规则必须遵循如下规则:

// 客户端字符集设置

// 连接层字符集设置

// 数据库端字符集默认设置// 服务端字符集设置

// 系统元数据字符集设置

// 查询结果字符集设置

1) 小写字母,数字和半角下划线组合。

2) 禁止使用关键字。

(3)字母遵循英文简称或简写模式

(4)名称必须和业务关联。

2.2.2 表名称命名规则

表名称命名必须遵循易懂、简单、无二义性原则,必须遵循如下规则:

(1)小写字母,数字和半角下划线组合。

(2)禁止使用关键字。

(3)表命名根据表的业务逻辑用半角下划线拼接,相同业务表须带有相同表头

标识。

2.2.3 字段命名规则

字段名称须遵循易懂、简单原则:

(1)小写字母,数字和半角下划线组合。

(2)禁止使用关键字。

(3)每个非定义表(表内容经常变更)必须包含create_time 和update_time ,根据时间戳更新。

(4)每个非定义表(表内容经常变更)必须包含create_id 和update_id 用于追溯创建和修改来源。

(5)上述四个字段的顺序为:create_id ,create_time ,update_id ,

update_time 。

2.2.4 索引命名规则

为了便于识别索引和代码中检索索引,现统一按如下规则命名索引名称:

(1)索引以idx_表名缩写—字段缩写。

(2)唯一索引以uk_表名缩写—字段缩写。

(3)外键以fk_表名1 (自身表)缩写—表名2(关联表)缩写—字段缩写。不建议使用外键,将影响数据库性能。

2.3 字段类型选择

字段类型选择遵循:能占一个字节绝不占两个字节。因此在设计表结构时需要预估字段值范围。

2.3.1 数字类型

( 1 ) 整数

tinyint 1 字节(-128,127) (0 ,255) 小整数值。

smalliny 2 字节(-32768 ,32767) (0 ,65535) 大整数值。

mediumint 3 字节(-8388608 ,8388607) (0 ,16777215) 大整数值。

int 或integer 4 字节(-2147483648 ,2 147483647) (0 ,4294967295) 大整数值。bigint 8 字节(-9233372036854775808 ,9223372036854775807) (0,18 446744073709551615) 极大整数值。

对于自增字段,如果记录经常做物理删除(delete) 或记录数未来可能会超过21 亿必须用bigint 。

默认使用unsigned 类型。

对于表示状态、类型、种类一律用tinyint ,依据域范围合理选择smallint 、mediumint

( 2) 小数

相关文档
最新文档