⭐ 作者简介:码上言
⭐ 代表教程:Spring Boot + vue-element 开发个人博客项目实战教程
⭐专栏内容:零基础学Java、个人博客系统
项目部署视频
https://www.bilibili.com/video/BV1sg4y1A7Kv/?vd_source=dc7bf298d3c608d281c16239b3f5167b
文章目录
到此,项目的基础配置已基本上完成了,后续用到其他的配置再添加,下面我们将进行数据库的设计,根据我们的功能介绍,并将每个功能用的字段进行设计,这个很重要。我们做的是个人博客,最大的数据也就是我们发布的文章内容了,最多也就上千条的博客数据,对数据库的设计要求不是很高,所以我们直接设计就好了,某些字段可能后期要修改,目前先把基本的初始化的表搭建好。
一、Navicat工具建表使用
我们有两种创建数据库的方式,一种是采用SQL语句进行创建数据库和表,另一种是利用数据库的可视化工具进行创建数据库,我们采用的是SQL语句进行创建数据库,既然是学习,我们要多接触一些东西。
虽然是采用SQL语句进行建表,但是我们也要利用工具进行编写和执行工具,则就会用到我们之前安装的Navicat工具,现在让我们打开工具,会看到之前创建好的数据库personal_blog。
我们先教软件的操作方法再进行建表,授人以鱼不如授人以渔。
接下来可以两种方式建表,第一种是傻瓜式操作,点击新建表,然后输入字段名称和类型即可
这是一种建表的方式,简单直接,但是为了逼格高一点,我们选择SQL语句建表。
下面进行建表,我们在Navicat中点击查询
接下来会弹出一个查询编译器,我们将建表语句写在这里,然后执行即可。
二、建表
在哪建表已经清楚了,我们现在就要把表建立起来,我主要分为两块,一个是以表格的形式进行字段的规划,然后再附上建表的语句,因为在真是的项目中和写论文中,项目文档都是以表格或者三行表的形式进行字段展示,所以我这里两个都兼容一下。
0、创建数据库
SQL语句的注释是两个线加空格。
create database personal_blog; -- 创建数据库
drop database personal_blog; -- 删除数据库
1、文章管理表
数据库表字段的命名规则:使用小写英文单词,如果有多个单词使用下划线隔开。字段应当有注释,描述该字段的用途及可能存储的内容,如枚举值则建议将该字段中使用的内容都定义出来;
SQL语句:
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、用户管理表
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 '用户管理表';
3、标签管理表
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 '标签管理表';
4、通知公告表
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 '通知公告表';
5、文章分类管理表
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 '文章分类管理表';
6、操作日志表
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 '操作日志表';
7、登录日志表
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文件中修改,提交代码,其他人就可以查看修改后的字段。
我们现要把原来的代码提交。
出现这种提交成功
然后点击push才能将项目推送到仓库中
新建一个sql文件,然后放置一些初始化的sql数据
到此,我们的数据库表创建完成,接下来,我们要实现功能模块了,正式开始敲代码。
上一篇:Spring Boot + vue-element 开发个人博客项目实战教程(六、项目包创建和配置Mybatis)
下一篇:Spring Boot + vue-element 开发个人博客项目实战教程(八、用户中心功能实现)