1、所有表字符集默认设置为 utf8mb4_unicode_ci;
2、所有表需要分页查询的表里面禁止出现text类的大文本字段;
3、所有表的字段为字符型varchar时最大长度尽量不要超过255;
1、主键ID为bigint 默认长度设置为20;
2、任何字段如果为非负数,必须是 unsigned (无符号);
3、任何字段如果为必须为 NULL,必须是 NOT NULL,设置默认值,数字型默认值为0,字符型设置为'' (空字符串);
4、tinyint 默认长度设置为2;
id
bigint(20) unsigned NOT NULL COMMENT '主键id'
org_id
bigint(20) UNSIGNED NOT NULL COMMENT '租户id'
create_by
varchar(100) NOT NULL COMMENT '由谁创建'
create_time
datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'
update_by
varchar(100) NOT NULL COMMENT '由谁更新'
update_time
datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
1、框架层级的表以 ofa_ 开头
2、业务模块强相关的表,以模块名开头:(例)cms_content
3、映射表(主表之间关联),以_ref结尾
4、扩展表(主表的扩展表),以_ext结尾
5、详情表(主表的明细表),以_det结尾
6、日志表(动作记录类表),以_log结尾
1、名称:xxx_name
2、标题:xxx_title
3、类型:xxx_type
作为查询条件的属性叫类型
4、分类:xxx_classify
影响主体结构的属性叫分类
5、封面:cover_img
图片字段的格式 xxx_img
6、描述:describe
7、阅读数:view_count
统计类字段的格式 xxx_count
8、人数:person_num
数值不变类的字段格式 xxx_num
9、是否删除:del_tag
标记类字段的格式:xxx_tag
10、状态:status
COMMENT '状态:1.正常, 0.无效'
11、排序值:sort
int(10) NOT NULL DEFAULT '0' COMMENT '排序'
1、索引不含有NULL的列
2、短索引——提高查询速度,节省磁盘空间和I/O操作
3、索引列排序
4、like语句操作——like 'XX%'才会使用到索引
5、索引建立在频繁操作的字段
6、索引建立在值比较唯一的字段
7、where和join中出现的列需要建立索引
8、join操作中,mysql只有在主键和外键的数据类型相同时才能使用索引
9、不要在列上进行运算
10、where条件里使用了函数
11、不使用NOT IN 、<>、!= 操作,但<,<=,=,>,>=,BETWEEN,IN是可以用到索引
12、text、image和bit数据类型的列不应该增加索引
13、索引应适量,不能多建