创建数据库与表
CREATE TABLE `video_author` (
`id` CHAR ( 19 ) NOT NULL COMMENT '创作者ID',
`name` VARCHAR ( 20 ) NOT NULL COMMENT '创作者姓名',
`intro` VARCHAR ( 500 ) NOT NULL DEFAULT '' COMMENT '创作者简介',
`career` VARCHAR ( 500 ) DEFAULT NULL COMMENT '创建者经历介绍',
`level` INT ( 10 ) UNSIGNED NOT NULL COMMENT '1:普通创作者 2:特约创作者',
`avatar` VARCHAR ( 255 ) DEFAULT NULL COMMENT '创作者头像',
`sort` INT ( 10 ) UNSIGNED NOT NULL DEFAULT '0' COMMENT '排序',
`is_deleted` TINYINT ( 1 ) UNSIGNED NOT NULL DEFAULT '0' COMMENT '逻辑删除 1(true)已删除, 0(false)未删除',
`gmt_create` datetime NOT NULL COMMENT '创建时间',
`gmt_modified` datetime NOT NULL COMMENT '更新时间',
PRIMARY KEY ( `id` ),
UNIQUE KEY `uk_name` ( `name` )
) ENGINE = INNODB DEFAULT CHARSET = utf8mb4 COMMENT = '创作者';
数据库设计规范
- 数据库名称尽量与应用名称保存一致
- 表名:业务名称_表的作用,video_author
- 表名, 字段名必须使用小写, 禁止以数字开头, 不要使用关键字
- 表名起的时候, 尽量不要使用复数名称
- 表当中必备三个字段:id:主键,gmt_create:记录创建的时间,gmt_modified:记录修改时间
- 如果一个表当中记录比较多的时候,超过了500万条,或者容量超过了2G考虑做分库分表, 假设表的内容3年都达不到500万条数据, 不要做分库分表
- 数据库当中字段如果是表示,
是
与否
,通常字段起名,is_xxx
数据类型 使用tinyint(1 表示真, 0表示假)
- 表示金钱的字段, 必须使用 decimal, 不能使用 float 或者 double, 有时候会都把小数类型统一使用 decimal
- 如果一个字段存储的内容几乎长度都相等,建议使用 char 类型,定长字符串类型
- varhcar 可变字符串, 不预先分配存储空间, 如果长充超过 5000, 不建议使用 varchar, 建议使用 text,建议使用独立的一张表来进行存储, 全部都放到一起, 会影响查询速度
- 主索引, 起名:
uk_字段
, 普通索引,idx_字段名称
- 如果两个表有外键 ,不要在数据库当中添加外键约束,在应用层进行处理外键,不利于
分布式
, 不利于做并发
集群