采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成,命名简洁明确,多个单词用下划线'_'分隔,一个项目一个数据库,多个项目慎用同一个数据库
二、数据库表命名规范
2.1数据表命名规范
(1)采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成,命名简洁明确,多个单词用下划线'_'分隔
(2)全部小写命名,禁止出现大写
(3)禁止使用数据库关键字,如:name,time,datetime,password等
(4)表名称不应该取得太长(一般不超过三个英文单词)
(5)表的名称一般使用名词或者动宾短语
(6)用单数形式表示名称,例如,使用employee,而不是employees
明细表的名称为:主表的名称+字符dtl(detail缩写)
例如:采购定单的名称为:po_order,则采购定单的明细表为:po_orderdtl
(7)表必须填写描述信息(使用SQL语句建表时)
2.2命名规范
①模块_+功能点示例:alllive_logalllive_category
②功能点示例:livemessage
③通用表示例:all_user
三、数据库字段命名规范
3.1字段命名规范
(3)字段必须填写描述信息
(4)禁止使用数据库关键字,如:name,time,datetimepassword等
(5)字段名称一般采用名词或动宾短语
(6)采用字段的名称必须是易于理解,一般不超过三个英文单词
(7)在命名表的列时,不要重复表的名称例如,在名employe的表中避免使用名为employee_lastname的字段
(8)不要在列的名称中包含数据类型
(9)字段命名使用完整名称,禁止缩写
3.2命名规范
①名词示例:user_iduser_namesex
②动宾短语示例:is_friendis_good
3.3待优化命名示例
①大小写规则不统一
错误示例:user_idhouseID
说明:使用统一规则,修改为”user_id”,”house_id”
②加下划线规则不统一
错误示例:usernameuseridisfriendisgood
说明:使用下划线进行分类,提升可性,方便管理,修改为”user_name”,”user_id”,”is_friend”,”is_good”
③字段表示不明确
错误示例:uidpid
说明:使用完整名称,提高可读性,修改为”user_id”,”person_id”
3.4字段类型规范
(1)所有字段在设计时,除以下数据类型timestamp、image、datetime、smalldatetime、uniqueidentifier、binary、sql_variant、binary、varbinary外,必须有默认值,字符型的默认值为一个空字符值串’’,数值型的默认值为数值0,逻辑型的默认值为数值0
(2)系统中所有逻辑型中数值0表示为“假”,数值1表示为“真”,datetime、smalldatetime类型的字段没有默认值,必须为NULL
四、SQL语言编码规范
4.1大小写规范
(1)所有关键字必须大写,如:INSERT、UPDATE、DELETE、SELECT及其子句,IF……ELSE、CASE、DECLARE等
(2)所有函数及其参数中除用户变量以外的部分必须大写
(3)在定义变量时用到的数据类型必须小写
操作规范:
一、【操作规范】1.如无备注,则表中的第一个id字段一定是主键且为自动增长;2.如无备注,则数值类型的字段请使用UNSIGNED属性;3.如无备注,排序字段order_id在程序中默认使用降序排列;4.如无备注,所有字段都设置NOTNULL,并设置默认值;5.如无备注,所有的布尔值字段,如is_hot、is_deleted,都必须设置一个默认值,并设为0;6.所有的数字类型字段,都必须设置一个默认值,并设为0;7.针对varchar类型字段的程序处理,请验证用户输入,不要超出其预设的长度;8.建表时将数据字典中的字段中文名和属性备注写入数据表的备注中(“PK、自动增长”不用写);9.如无说明,建表时一律采用innodb引擎;
四、【数据表字段设计范例】
分类表(t_category)
字段名
列名
类型
属性备注
说明
流水号
id
int(10)
PK、自动增长
特殊编号
cid
varchar(4)
第一个主分类为11、第一个子分类为1101,类推,仅支持二级分类
名称
name
varchar(10)
页面中需注明输入不超过10个字
父分类
pid
统计量
count
is_hot
tinyint(1)
首页显示
is_index
排序
order_id
[表命名规范]
2.表名使用英文小写单词,如果有多个单词则使用下划线隔开;
3.表名简介,使用常见单词,避免使用长单词和生僻词;
6.默认使用utf8字符集(由于数据库定义使用了默认,数据表可以不再定义,但为保险起见,建议都写上);
7.所有的表都必须有备注,写明白这个表中存放的数据内容;
8.预估表数据量,如果数据量较大(超过500w)则需要考虑分表策略。可以等量均衡分表或根据业务规则分表均可。要分表的数据表必须与DBA商量分表策略;
[字段命名规范]
1.数据库字段命名与表名命名类似:
2.使用小写英文单词,如果有多个单词使用下划线隔开;
3.使用简单单词,避免生僻词;
4.字段应当有注释,描述该字段的用途及可能存储的内容,如枚举值则建议将该字段中使用的内容都定义出来;
5.是别的表的外键均使用xxx_id的方式来表明;
6.表的主键一般都约定成为id,自增类型;
8.网络IP字段,除特殊情况一律用bigint来记录inet_aton值;
9.所有字段,均为非空,最好显示指定默认值;
10.有些驱动对tinyint支持不够好,通常建义按容量来选择字段;