【强制】数据库的名称必须控制在32个字符以内,由英文字符和数字组成。禁止使用中文。
【强制】创建数据库时必须显式指定字符集,并且字符集只能是utf8或者gbk。
【强制】表名称必须控制在32个字符以内。不能使用系统保留字和特殊字符,只能使用字母、数字和下划线。
【强制】列名称必须控制在32个字符以内。不能使用系统保留字和特殊字符,只能使用字母、数字和下划线。
【强制】创建表时必须显式指定字符集,并且字符集必须与数据库字符集相同,utf8或者gbk。
【强制】创建表时必须显式指定表存储引擎类型,默认使用InnoDB。如果需要选用MyISAM等其他引擎,统一平台无法支持。
【强制】InnoDB表必须有主键,主键必须为自增(auto_increment属性)BIGINT类型。主键列禁止被更新。
【强制】表中所有字段必须都是NOT NULL属性,业务可以根据需要定义DEFAULT值。
【强制】字段及表必须要有COMMENT。
【强制】表中字段名不能使用关键字
【强制】BLOB/TEXT不要有默认值
【强制】不允许使用分区表。
【强制】禁止使用SELECT * 取所有字段
【强制】INSERT需要指明需要插入的字段名
【强制】不支持触发器(Triger)
【强制】不支持存储过程(Procedure)
【强制】不支持外键(Foreign Key)
【强制】不支持函数(Function)
【强制】不支持视图(Views)
【强制】不支持事件(Event)
【强制】DML语句和DDL语句要分开提单
【强制】DML SQL上线单必须每修改1500行数据进行select sleep(1)
【强制】drop语句必须带 IF EXISTS,且一条drop语句只能删除一张表
【强烈建议】表自增临界值检查
【强烈建议】表名|字段名只能用小写
【强烈建议】不推荐使用ENUM和SET。
【强烈建议】VARCHAR与CHAR的选择:以UTF8或GBK为例,VARCHAR(200)对比CHAR(200),在存储上InnoDB中已将CHAR(200)字段当成变长字段在处理,两者已经不存在区别。但比如我们存放32长度的md5值,这时候就应该用CHAR(32),因为虽然在InnoDB存储层面与VARCHAR(32)已经没有区别,但使用CHAR(32)有利于传递出这是一个有规律的字段这样的信息。
【强烈建议】BLOB,TEXT,MEDIUMTEXT,LONGTEXT不推荐使用。
【强烈建议】业务活跃的大表中必须有行数据的创建时间字段create_time和最后更新时间字段update_time
【强烈建议】唯一键以“uk_”开头,普通索引以“idx_”开头,一律使用小写格式,以表名/字段的名称或缩写作为后缀。
【强烈建议】InnoDB和MyISAM存储引擎表,索引类型必须为BTREE。
【强烈建议】单个索引中每个索引记录的长度不能超过64KB
【强烈建议】单个表上的索引个数不能超过7个
【强烈建议】sql where条件必须要有索引
【强烈建议】JOIN表不推荐超过3个
【强制建议】强烈不建议sql语句有使用%S%或者%S进行模糊查询
【建议】业务中选择性很少的状态status、类型type等字段推荐使用tinytint或者smallint类型
【建议】业务中IP地址字段推荐使用无符号整型int(10) UNSIGNED类型
【建议】datetime推荐使用int替代