Spring Boot + vue-element 开发个人博客项目实战开发(五、创建数据库表)

到这里,项目所需要的基本配置就已经配置好了,后续如果需要用到其他的我们再另行配置即可,下面我们进行数据库的设计,根据功能介绍,并将每个能用到的字段进行设计,这个非常重要。我们做的是个人博客,最大的数据量也就是我们发布的文章内容了,最多也就上千条博客数据,对的数据库的设计要求不是很高,所以我们就直接设计了,某些字段可能后期需要修改,目前先把基本的初始化表搭建好。

一、Navicat工具建表使用

我们有两种创建数据库的方式,一种是采用SQL语句进行创建数据库和表,另一种是利用数据库的可视化工具进行创建数据库,

我们这里采用利用SQL语句进行建表,但我们也要利用工具进行编写和执行工具,就会用到之前安装的Navicat工具,

打开Navicat,看到之前创建的表person_blog

有两种方式建表

第一种:点击数据库,选择新建表

当然不明觉厉的方法是SQL语句建表,我们选择这种 

下面进行建表,我们在Navicat中点击查询  

 接下来会跳出一个查询编译器,我们将建表语句写在这里,然后点击执行

注:SQL语句需要以英文分号结尾

二、建表 

在哪建表已经很清楚了,现在要把表建立起来,这里分成,先以表格的形式进行字段的规划,再附上建表语句,

2.1 创建数据库语句

create database person_blog;  --创建表名为person_blog的表
drop database person_blog;    --删除表名为person_blog的表
drop table if exists `person_blog`;    --创建表时放在第一句,防止有重复的表名

 2.2 文章管理表

数据库表字段的命名规则:使用小写英文字母,如果有多个单词使用下划线隔开,字段应当有注释,描述该字段的用途及可能存储的内容,

SQL语句

(注: `id`  ` ` 这个符号 就是电脑键盘左侧Tab键上面那个,而 '主键'   '' ' 这个单冒号是英文模式下的双冒号)

DROP TABLE IF EXISTS `person_article`; -- 删除表
CREATE TABLE `person_article` (
    `id`                 INT             NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
	`author`             VARCHAR(128)    NOT NULL                            COMMENT '作者',
	`title`              VARCHAR(255)    NOT NULL                            COMMENT '文章标题',
    `tag_id`             INT(11)         NOT NULL                            COMMENT '文章标签id',
	`user_id`            INT(11)         NOT NULL                            COMMENT '用户id',
	`category_id`        INT(11)         NOT NULL                            COMMENT '分类id',
	`content`            LONGTEXT            NULL                            COMMENT '文章内容',
    `views`              BIGINT          NOT NULL DEFAULT 0                  COMMENT '文章浏览量',
	`total_words`        BIGINT          NOT NULL DEFAULT 0                  COMMENT '文章总字数',
    `commentable`        INT    		     NULL                            COMMENT '评论id',
	`art_status`         TINYINT         NOT NULL DEFAULT 0                  COMMENT '发布,默认0, 0-发布, 1-草稿', 
	`description`        VARCHAR(255)    NOT NULL                            COMMENT '描述',
	`image_url`          VARCHAR(255)    NOT NULL                            COMMENT '文章logo',
    `create_time`        DATETIME            NULL DEFAULT CURRENT_TIMESTAMP      COMMENT '创建时间',
    `update_time`        DATETIME            NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间'
) ENGINE = InnoDB
  CHARACTER SET = utf8mb4
  COLLATE = utf8mb4_bin
  ROW_FORMAT = Dynamic
  COMMENT '文章管理表';

 

 

2.3 用户管理表

 SQL语句

DROP TABLE IF EXISTS `person_user`;
CREATE TABLE `person_user` (
 `id`                 INT             NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
 `username`           VARCHAR(255)    NOT NULL                            COMMENT '用户名',
 `password`           VARCHAR(255)    NOT NULL                            COMMENT '密码',
 `email`              VARCHAR(64)         NULL                            COMMENT '邮箱',
 `last_login_time`    datetime            NULL                            COMMENT '上次登录时间',
 `phone`              BIGINT(11)      NOT NULL DEFAULT 0                  COMMENT '手机号',
 `nickname`			  VARCHAR(64)         NULL                            COMMENT '昵称',    
 `create_time`        DATETIME            NULL DEFAULT CURRENT_TIMESTAMP      COMMENT '创建时间',
 `update_time`        DATETIME            NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间'
) ENGINE = InnoDB
  CHARACTER SET = utf8mb4
  COLLATE = utf8mb4_bin
  ROW_FORMAT = Dynamic
  COMMENT '用户管理表';

运行完成,右键person_blog选择刷新,下面会出现表名,创建成功

下面各个表的创建生成过程都一样,就不一一列举了

2.4 标签管理表

SQL语句 

DROP TABLE IF EXISTS `person_tag`;
CREATE TABLE `person_tag` (
 `id`                 INT             NOT NULL PRIMARY KEY AUTO_INCREMENT     COMMENT '主键',
 `tag_name`			  VARCHAR(255)        NULL                                COMMENT '标签名',    
 `create_time`        DATETIME            NULL DEFAULT CURRENT_TIMESTAMP      COMMENT '创建时间',
 `update_time`        DATETIME            NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间'
) ENGINE = InnoDB
  CHARACTER SET = utf8mb4
  COLLATE = utf8mb4_bin
  ROW_FORMAT = Dynamic
  COMMENT '标签管理表';

 2.5 通知公告表

SQL语句 

DROP TABLE IF EXISTS `person_notice`;
CREATE TABLE `person_notice` (
 `notice_id`        INT             NOT NULL PRIMARY KEY AUTO_INCREMENT     COMMENT '主键',
 `notice_title`		VARCHAR(255)      NOT NULL                                COMMENT '公告标题',
 `notice_type`		TINYINT    		  NOT NULL DEFAULT 0                      COMMENT '公告类型,默认0, 0-公告, 1-通知, 2-提醒', 
 `status`           TINYINT           NOT NULL DEFAULT 0                      COMMENT '状态,默认0, 0-正常, 1-关闭', 
 `noticeContent`    text                  NULL                                COMMENT '公告内容',
 `createBy`   		VARCHAR(128)      NOT NULL                                COMMENT '创建者',
 `create_time`      DATETIME              NULL DEFAULT CURRENT_TIMESTAMP      COMMENT '创建时间',
 `update_time`      DATETIME              NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间'
) ENGINE = InnoDB
  CHARACTER SET = utf8mb4
  COLLATE = utf8mb4_bin
  ROW_FORMAT = Dynamic
  COMMENT '通知公告表';

 2.6 文章分类管理表

SQL语句: 

DROP TABLE IF EXISTS `person_category`;
CREATE TABLE `person_category` (
  `category_id`        INT             NOT NULL PRIMARY KEY AUTO_INCREMENT     COMMENT '主键',
  `category_name`      VARCHAR(128)    NOT NULL                                COMMENT '分类名称',
  `create_time`        DATETIME            NULL DEFAULT CURRENT_TIMESTAMP      COMMENT '创建时间',
  `update_time`        DATETIME            NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间'
) ENGINE = InnoDB
  CHARACTER SET = utf8mb4
  COLLATE = utf8mb4_bin
  ROW_FORMAT = Dynamic
  COMMENT '文章分类管理表';

2.7 操作日志表

SQL语句: 

DROP TABLE IF EXISTS `person_operation_log`;
CREATE TABLE `person_operation_log` (
  `operation_id`          INT             NOT NULL PRIMARY KEY AUTO_INCREMENT     COMMENT '主键',
  `operation_ip`          VARCHAR(128)        NULL DEFAULT 0                      COMMENT '主机地址',
  `oper_location`         VARCHAR(255)        NULL DEFAULT ''                     COMMENT '操作地点',
  `method`                TEXT                NULL                                COMMENT '方法名',
  `args`          		  TEXT                NULL                                COMMENT '参数',
  `operation_name`        VARCHAR(50)     NOT NULL DEFAULT ''                     COMMENT '操作人',
  `operation_type` 		  VARCHAR(50)     NOT NULL DEFAULT ''                     COMMENT '操作类型',
  `return_value`   		  TEXT                NULL                                COMMENT '返回参数',
  `create_time`        	  DATETIME            NULL DEFAULT CURRENT_TIMESTAMP      COMMENT '创建时间',
  `update_time`        	  DATETIME            NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间'
) ENGINE = InnoDB
  CHARACTER SET = utf8mb4
  COLLATE = utf8mb4_bin
  ROW_FORMAT = Dynamic
  COMMENT '操作日志表';

2.8 登录日志表

SQL语句:

DROP TABLE IF EXISTS `person_login_log`;
CREATE TABLE `person_login_log` (
  `info_id`           BIGINT(20)         NOT NULL 	PRIMARY KEY AUTO_INCREMENT    		COMMENT '登录访问id',
  `login_name`     	  VARCHAR(50)    	     NULL	DEFAULT ''                				COMMENT '登录账号',
  `ip_address`        VARCHAR(128)   		 NULL	DEFAULT ''                			  COMMENT '登录IP地址',
  `login_location`    VARCHAR(255)  		 NULL   DEFAULT ''                				COMMENT '登录地点',
  `browser_type`      VARCHAR(50)   		 NULL   DEFAULT ''                				COMMENT '浏览器类型',
  `os`             	  VARCHAR(50)   		 NULL 	DEFAULT ''                				COMMENT '操作系统',
  `status`         	  TINYINT       		 NULL 	DEFAULT 0               				  COMMENT '登录状态,默认0, 0-成功, 1-失败',
  `msg`            	  VARCHAR(255)  	     NULL 	DEFAULT ''                				COMMENT '提示消息',
  `create_time`       DATETIME            	 NULL 	DEFAULT CURRENT_TIMESTAMP       	COMMENT '创建时间'
) ENGINE = InnoDB
  CHARACTER SET = utf8mb4
  COLLATE = utf8mb4_bin
  ROW_FORMAT = Dynamic
  COMMENT '登录日志表';

成功生成七张数据库表  

三、项目中创建初始化的数据库

数据表都初始化完成后,我们将SQL语句文件放到项目中统一修改管理,尤其是多人开发的时候,某个字段需要修改,直接在SQL文件中修改,提交代码,其他人就可以查看修改后的字段

但首先要做的,是把之前的代码提交

填写完成之后点击底部的Commit ,左下角显示提交信息成功

然后再点击push才能将项目推送到仓库中

main目录下创建一个文件夹sql

sql文件下创建一个File命名为init.sql,用于存放初始化的sql数据

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值