博客系统数据库和实体类设计

数据库设计

专栏表

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;//名称
}

你可能感兴趣的:(博客系统,数据库,spring)