目录
一 数据库的设计
根据产品(原型图)可以设计出对应的模型(模型间的关系,字段)。
1 文章表
文章编号(主键)
文章标题
创建时间(发布时间)
修改时间
简介
正文
访问量
作者ID(用户编号)
状态(1=已发布,-1=草稿)
创建文章表的SQL:
create table article(
aid int primary key auto_increment comment '文章编号',
title varchar(255) NOT NULL comment '标题',
createtime datetime default CURRENT_TIMESTAMP() comment '创建时间',
updatetime datetime default CURRENT_TIMESTAMP() comment '修改时间',
intro varchar(300) comment '简介',
content longtext NOT NULL comment '正文',
rcount bigint default 1 comment '访问量',
uid int NOT NULL comment '用户编号',
state int default 1 comment '状态',
foreign key(uid) references userinfo(uid)
);
2 用户表
用户编号(主键)
头像
昵称
登录名
密码
状态(1=正常用户,-1=冻结用户)
创建用户表的SQL:
create table userinfo(
uid int primary key auto_increment comment '用户编号',
photo varchar(255) comment '头像',
nickname varchar(255) comment '昵称',
loginname varchar(50) NOT NULL comment '登录名',
password varchar(100) NOT NULL comment '密码',
state int default 1 comment '状态'
);
3 评论表
评论编号(主键)
用户编号
评论内容
文章编号
评论时间
创建评论表的SQL:
create table remark(
rid int primary key auto_increment comment '评论编号',
uid int NOT NULL comment '用户编号',
content varchar(1000) NOT NULL comment '评论内容',
aid int NOT NULL comment '文章编号',
createtime datetime default current_timestamp,
foreign key(uid) references userinfo(uid)
);
二 创建用户实体类
1 文章实体类
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.time.LocalDateTime;
import java.util.Date;
/**
* 文章实体类
*/
@Setter
@Getter
@ToString
public class Article {
//文章编号
private Integer aid;
//标题
private String title;
//创建时间
private Date createtime;
//修改时间
private Date updatetime;
//简介
private String intro;
//正文
private String content;
//访问量
private Long rcount;
//用户编号
private Integer uid;
//状态
private Integer state;
}
2 用户实体类
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 用户实体类
*/
@Setter
@Getter
@ToString
public class Userinfo {
//用户编号
private Integer uid;
//头像
private String photo;
//昵称
private String nickname;
//登录名
private String loginname;
//密码
private String password;
//状态
private Integer state;
}
3 评论实体类
@Setter
@Getter
@ToString
public class Remark {
//评论编号
private Integer rid;
//用户编号
private Integer uid;
//评论内容
private String content;
//文章编号
private Integer aid;
//评论时间
private Date createtime;
}
4 文章拓展实体类
@Setter
@Getter
@ToString
public class ArticleVo extends Article {
private String photo;
private String loginname;
private String nickname;
private int artCount;
}
5 用户拓展实体类
/**
* 验证码
*/
public class UserinfoVo extends Userinfo {
private String checkCode;
private String codekey;
public String getCheckCode() {
return checkCode;
}
public void setCheckCode(String checkCode) {
this.checkCode = checkCode;
}
public String getCodekey() {
return codekey;
}
public void setCodekey(String codekey) {
this.codekey = codekey;
}
}
6 评论拓展实体类
public class RemarkVo extends Remark implements Serializable {
@Serial
private static final long serialVersionUID=-3343856025790167085L;
private String nickname;
@Override
public String toString() {
return "RemarkVo{" +
"nickname='" + nickname + '\'' +
'}';
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
}
可以看出文章拓展实体类继承文章实体类,用户拓展实体类继承用户实体类,评论拓展实体类继承评论实体类。
以上是设计博客系统的第一部分——设计数据库及Java实体类,其他部分后续更新。