谷粒学院项目实战21——前后端分离概念与数据库建表
1.前后端分离概念
2.搭建项目环境
新建数据库。
CREATE DATABASE gulischool;
建表
CREATE TABLE IF NOT EXISTS 'edu_teacher' ( 'id' varchar(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='讲师';
报错
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near...
原因是语法错误,改为
CREATE TABLE IF NOT EXISTS edu_teacher ( 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='讲师'
注:表设计规范参考《阿里巴巴java设计规范》如下。
1.表中必备三个字段:id,gmt_create,gmt_modified(gmt为格林时间),id必为主键,类型为bigint unsigned,单表时自增,步长为1.
2.库名与应用名称尽量一致
3.表名、字段名使用小写字母或数字,禁止以数字开头
4.表名不使用复数名词
5.表的命名最好加上"业务名称_表的作用",如"edu_teacher"
6.非负值必须使用unsigned
7.表达与否使用is_xxx
8.单表行数超过 500 万行或者单表容量超过 2GB,才推荐进行分库分表。 说明:如果预计三年后的数
据量根本达不到这个级别,请不要在创建表时就分库分表
9.小数类型为 decimal,禁止使用 float 和 double。 说明:float 和 double 在存储的时候,存在精度损
失的问题,很可能在值的比较时,得到不 正确的结果。如果存储的数据范围超过 decimal 的范围,建议
将数据拆成整数和小数分开存储
10.唯一索引名为 uk_字段名;普通索引名则为 idx_字段名。
......
java全栈日日学 文章被收录于专栏
java全栈每日必学,不要高估自己一年能做的事,不要低估自己十年能做的事