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

本文详细描述了一个博客系统的数据库设计,包括博客表、专栏表、标签表、评论表以及类型和可见范围表的创建,以及实体类Blog、BlogColumn、BlogComment、BlogTag、BlogType和BlogVisibility的设计。
摘要由CSDN通过智能技术生成

数据库设计

专栏表

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<BlogTag> tags;//标签
    @TableField(exist = false)
    private List<BlogColumn> 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;//名称
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月木@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值