数据库设计
专栏表
DROP TABLE IF EXISTS `blog_column`;
CREATE TABLE `blog_column` (
`blogColumnId` int(11) NOT NULL AUTO_INCREMENT,
`blogColumnName` varchar(255) DEFAULT NULL,
`blogColumnCoverImg` longtext,
`blogColumnIntroduction` longtext,
`userId` int(11) DEFAULT NULL,
PRIMARY KEY (`blogColumnId`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4;
标签表
DROP TABLE IF EXISTS `blog_tag`;
CREATE TABLE `blog_tag` (
`blogTagId` int(11) NOT NULL AUTO_INCREMENT,
`blogTagName` varchar(255) DEFAULT NULL,
PRIMARY KEY (`blogTagId`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4;
博客类型表
DROP TABLE IF EXISTS `blog_type`;
CREATE TABLE `blog_type` (
`blogTypeId` int(11) NOT NULL AUTO_INCREMENT,
`blogTypeName` varchar(255) DEFAULT NULL,
PRIMARY KEY (`blogTypeId`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4;
评论表
DROP TABLE IF EXISTS `blog_comment`;
CREATE TABLE `blog_comment` (
`blogCommentId` int(11) NOT NULL AUTO_INCREMENT,
`blogCommentContent` varchar(255) DEFAULT NULL,
`blogCommentTime` varchar(255) DEFAULT NULL,
`userId` int(11) DEFAULT NULL,
`blogId` int(11) DEFAULT NULL,
PRIMARY KEY (`blogCommentId`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4;
可见范围表
DROP TABLE IF EXISTS `blog_visibility`;
CREATE TABLE `blog_visibility` (
`blogVisibilityId` int(11) NOT NULL AUTO_INCREMENT,
`blogVisibilityName` varchar(255) DEFAULT NULL,
PRIMARY KEY (`blogVisibilityId`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4;
博客表
DROP TABLE IF EXISTS `blog`;
CREATE TABLE `blog` (
`blogId` int(11) NOT NULL AUTO_INCREMENT,
`blogTitle` varchar(255) DEFAULT NULL,
`blogCoverImg` longtext,
`blogSummary` longtext,
`blogContent` longtext,
`blogCreateData` varchar(255) DEFAULT NULL,
`blogShow` int(11) DEFAULT NULL,
`blogRead` int(11) DEFAULT NULL,
`blogLike` int(11) DEFAULT NULL,
`blogFavorite` int(11) DEFAULT NULL,
`userId` int(11) DEFAULT NULL,
`blogTypeId` int(11) DEFAULT NULL,
`blogVisibilityId` int(11) DEFAULT NULL,
`blogStatus` varchar(255) DEFAULT NULL,
PRIMARY KEY (`blogId`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4;
博客专栏关联表
DROP TABLE IF EXISTS `blog_blog_column`;
CREATE TABLE `blog_blog_column` (
`blogId` int(11) DEFAULT NULL,
`blogColumnId` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
博客标签关联表
DROP TABLE IF EXISTS `blog_blog_tag`;
CREATE TABLE `blog_blog_tag` (
`blogId` int(11) DEFAULT NULL,
`blogTagId` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
实体类设计
Blog
/**
* 博客文章实体类
*/
@Data
public class Blog implements Serializable {
@TableId
private Integer blogId;
private String blogCoverImg;//封面
private String blogTitle;//标题
private String blogSummary;//摘要
private String blogContent;//内容
private String blogCreateData;//创作时间
private String blogStatus;//状态【0:审核/1:发布】
private Integer blogShow;//展现量
private Integer blogRead;//阅读量
private Integer blogLike;//点赞量
private Integer blogFavorite;//收藏量
private Integer userId;//作者
@TableField(exist = false)
private User user;
private Integer blogTypeId;//类型
@TableField(exist = false)
private BlogType blogType;
private Integer blogVisibilityId;//可见范围
@TableField(exist = false)
private BlogVisibility blogVisibility;
@TableField(exist = false)
private List tags;//标签
@TableField(exist = false)
private List columns;//专栏
}
BlogColumn
/**
* 专栏
* 博客和专栏是多对多的关系
* 用户和专栏是一对多的关系
*/
@Data
public class BlogColumn implements Serializable {
@TableId
private Integer blogColumnId;
private String blogColumnName;//名称
private String blogColumnCoverImg;//封面
private String blogColumnIntroduction;//简介
private Integer userId;//用户
}
BlogComment
/**
* 评论
*/
@Data
public class BlogComment implements Serializable {
@TableId
private Integer blogCommentId;
private String blogCommentTime;//评论时间
private String blogCommentContent;//内容
private Integer userId;//评论者
private Integer blogId;//博客
}
BlogTag
/**
* 标签
* 博客和标签是多对多的关系
*/
@Data
public class BlogTag implements Serializable {
@TableId
private Integer blogTagId;
private String blogTagName;//标签名
}
BlogType
/**
* 类型
*/
@Data
public class BlogType implements Serializable {
@TableId
private Integer blogTypeId;
private String blogTypeName;//类型名
}
BlogVisibility
/**
* 可见范围
*/
@Data
public class BlogVisibility implements Serializable {
@TableId
private Integer blogVisibilityId;
private String blogVisibilityName;//名称
}