1、数据库表名命名规范

        采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成;
        命名简洁明确,多个单词用下划线'_'分隔;
        例如:user_login, user_profile, user_detail, user_role, user_role_relation,
            user_role_right, user_role_right_relation
        表前缀'user_'可以有效的把相同关系的表显示在一起;

2、数据库表字段名命名规范 

        采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成;
        命名简洁明确,多个单词用下划线'_'分隔;
        例如:user_login表字段 user_id, user_name, pass_word, eamil, tickit, status, mobile, add_time;
        每个表中必须有自增主键,add_time(默认系统时间)
        表与表之间的相关联字段名称要求尽可能的相同;

3、用尽量少的存储空间来存数一个字段的数据;
例如:能使用int就不要使用varchar、char,能用varchar(16)就不要使用varchar(256);
        IP地址最好使用int类型;
        固定长度的类型最好使用char,例如:邮编;
        能使用tinyint就不要使用smallint,int;
        最好给每个字段一个默认值,最好不能为null;
4、字段类原则
用好数值类型(用合适的字段类型节约空间);
        字符转化为数字(能转化的最好转化,同样节约空间、提高查询性能);
        避免使用NULL字段(NULL字段很难查询优化、NULL字段的索引需要额外空间、NULL字段的复合索引无效);
        少用text类型(尽量使用varchar代替text字段);

MySQL数据类型

含义

date

3字节,日期,格式:2014-09-18

time

3字节,时间,格式:08:42:30

datetime

8字节,日期时间,格式:2014-09-18 08:42:30

timestamp

4字节,自动存储记录修改的时间

year

1字节,年份

 

整型

MySQL数据类型

含义(有符号)

tinyint

1字节,范围(-128~127)

smallint

2字节,范围(-32768~32767)

mediumint

3字节,范围(-8388608~8388607)

int

4字节,范围(-2147483648~2147483647)

bigint

8字节,范围(+-9.22*10的18次方)

字符串数据类型

 

MySQL数据类型

含义

char(n)

固定长度,最多255个字符

varchar(n)

可变长度,最多65535个字符

tinytext

可变长度,最多255个字符

text

可变长度,最多65535个字符

mediumtext

可变长度,最多2的24次方-1个字符

longtext

可变长度,最多2的32次方-1个字符