数据库设计规范:
1,表设计规范
1.1关于表设计
a) 表名、列名必须有注释。
b) 命名应使用富有意义的英文词汇或者缩写,多个单词组成的,全部大写,以"_"分隔开来,只能使用英文字母,数字和下划线,不留空格。比如USER_DETALL,不允许使用关键字TYPE或者STATUS等来作为字段名。
c) 命名长度不超过15个字符为宜(避免超过20),应该反映数据集所在的业务范围,或者业务功能,如POWER_USER(用户中心)等。
d) 当字段类型为枚举或者布尔型时,使用 CHAR(1)(或者CHAR(2))类型,填写默认值,状态字段的默认值不能为null一般是设置成0或者-1,状态字段的描述写成 comment '团购券状态:1.已购买;2.已使用;3.退款中;4已退款'。
e) 在设计时候尽量包含日期字段:CREATE_DATE(创建日期),UPDATE_DATE(更新日期)等。mysql中对日期约定一种录入方式,如'2014-12-31 00:00:00.0'
f) 默认值,数字类型默认值为0,字符串默认值为’’,日期默认值为’1900-01-01 00:00:00.0’。
g) 主键字段ID用bigint,如果create语句中有AUTO_INCREMENT=6653864标示,请去掉。
h) 日期字段的默认值也不能为null,一般设置成1970-12-31 00:00:00.0。
i) 手机字段,邮箱字段等会被检索的字段不允许为null,默认值为空串’’。数字类型字段不允许为null默认值为0。
j) 默认字符编码为utf8,默认存储引擎为INNODB
PS:每个表必须有主键字段,必须有录入日期字段并且值不允许为NULL。
1.2 索引设计
1) 普通索引,以IDX_开头连接字段名字。
2) 值范围重复的比例少的,建立索引字段,比如 CREATE_DATE(录入时间)字段;值范围重复比率的字段不需要建立索引比如IS_RETURN(是否已退款)字段。
3) 主键字段不需要建立unique key,主键字段也不需要单独建索引。
4) WHERE条件后面的经常查询的字段,需要加索引,比如ORDER_GOODS 表的ORDER_SN(商品号)等。
5) 范围字段不需要加索引,比如SHOP_MALL表的IS_DEL