基于SpringBoot从零构建博客网站 - 确定需求和表结构

要确定一个系统的需求,首先需要明确该系统的用户有哪些,然后针对每一类用户,确定其需求。对于博客网站来说,用户有3大类,分别是:

  • 作者,也即是注册用户
  • 游客,也即非注册用户
  • 管理员,网站维护人员

那么从这3大类用户的角度分析,来确定博客网站的需求。

1、作者需求

作者是博客网站中最重要的用户,是博客网站内容的直接贡献者,那么从作者的角度来说,需求有:

  • 注册、登录、退出

    这是作者进入与离开网站必不可少的功能,同时管理员可以设置是否需要激活账号的功能,如果开启了账号激活功能,那么作者注册成功后,会收到一封激活账号的邮件。

  • 个人中心

    注册成本网站的用户后,就会有个人首页,这里就会涉及到个人相关信息的维护,例如:头像设置、个人简介、修改密码。

  • 关注其她作者

    关注其她作者,成为其粉丝,同时方便下次找到该作者

  • 私信其她作者

    增加本网站作者间的互动,例如:请教其她作者问题时,就可以发私信的方式进行交流

  • 收藏文章

    碰到其她作者写的好的文章,可以将其收藏起来,方便下次查看

  • 文章维护

    文章维护是作者最主要的功能,作者发表文章、修改文章、删除文章和查看文章

  • 专栏维护

    对于写同一系列的文章,可以创建专栏,将这一系列的文章都归档于该专栏,这样方便作者管理,也方便读者查阅

  • 评论文章

    作者与读者间沟通交流的方式

2、游客需求

对于游客来说,需求相关简单,就是检索和阅读文章:

  • 检索文章

    检索文章可以从4个渠道检索,即:关键字全文检索、文章分类检索、文章所属专栏检索、文章标签检索

  • 阅读文章

    这是游客最主要的功能,查看文章的内容

3、管理员需求

管理员的主要工作就是维护本网站,让网站正常运行,为此从管理员的角度来看,需求有:

  • 报表信息

    对于管理员来说,他需要了解本网站的各项指标统计信息,例如:今日注册用户数、今日活跃用户数、文章发表量等。可以将这些报表信息做在仪表盘里面。

  • 用户管理

    查看用户信息,当然可以禁用不合法用户、创建管理员用户

  • 文章管理

    查看文章信息,同时对于不合法的文章可以将其关闭,即不能在前台显示

  • 专栏管理

    查看专栏信息

  • 系统设置

    对于系统设置主要有设置注册用户是否需要激活、设置文章是否需要审核

根据前面《确定需求》,可知这个博客网站主要由三大模块构成,分别是:

  • 用户管理及权限相关模块
  • 文章及专栏等博文相关模块
  • 公共模块

那么从这三大模块的角度来分析,确定表结构。

4、用户管理及权限相关模块

这个模块最主要是有一张用户表,用于存储用户相关的信息,具体的表结构内容如下:

用户表:auth_user

字段名类型说明
userIdvarchar(64)主键
codevarchar(64)用户代码,用于设置用户个人主页url上的一个唯一代码
loginNamevarchar(200)用户名
emailvarchar(200)电子邮箱
passwordvarchar(200)密码
realNamevarchar(200)真实姓名
cellphonevarchar(32)手机号码
idCardvarchar(32)身份证号
idCardImgPathvarchar(200)身份证照片路径
realStatusint(11)实名认证状态,0:未实名认证,1:已实名认证,-1:实名认证失败
sexint(11)性别,0:表示女,1:表示男,-1:表示保密
picturevarchar(200)头像图片路径
introducevarchar(2000)个人简介
isActiveint(11)是否激活,0:未激活,1:已激活
statusint(11)账号状态,0:禁用,1:启用
followsint(11)关注用户数量
fansint(11)粉丝数量
createTimedatetime创建时间,也即注册时间
createIpvarchar(32)创建时的ip地址
updateTimedatetime更新时间
lastLoginTimedatetime最近一次登录的时间
lastLoginIpvarchar(32)最近一次登录的ip

对于感兴趣的用户可以加关注,则有用户粉丝关注信息表,即:

用户粉丝关注信息表:auth_user_fans

字段名类型说明
followWhovarchar(64)被关注用户id
whoFollowvarchar(64)关注人的id
createTimedatetime创建时间

对于权限管理这一块,其实主要后台的管理人员会涉及到。这一块采用简单的用户绑定角色,角色绑定权限的方式来设计。

角色表:auth_role

字段名类型说明
roleIdvarchar(64)主键
namevarchar(200)角色名
notevarchar(2000)描述

用户角色关系表:auth_user_role

字段名类型说明
userIdvarchar(64)用户表主键
roleIdvarchar(64)角色表主键

权限表:auth_action

字段名类型说明
actionIdvarchar(64)主键
namevarchar(200)权限名
notevarchar(2000)描述

角色权限关系表:auth_role_action

字段名类型说明
roleIdvarchar(64)角色表主键
actionIdvarchar(64)权限表主键

5、文章及专栏等博文相关模块

这个模块是博客网站的核心模块,主要涉及文章和专栏相关表的设计。

一个博客网站里面文章和专栏都会归类,比如是属于架构设计、还是属于前端开发的内容,所以需要一张分类信息表,即:

分类信息表:blog_category

字段名类型说明
categoryIdvarchar(64)主键
namevarchar(200)分类名称
introducevarchar(2000)说明
parentIdvarchar(64)父节点id
orderIdint(11)排序号

在写文章时,可以为文章写相应标签,有利于文章的检索,那么就得有一张标签表,即;

标签表:blog_tag

字段名类型说明
tagIdvarchar(64)主键
tagvarchar(200)标签
createTimedatetime创建时间

在写一系列相关的文章时,可以创建一个专栏,也检索文章增加专栏这样一个维度,那么专栏信息表结构如下:

专栏信息表:blog_group

字段名类型说明
groupIdvarchar(64)主键
namevarchar(200)名称
logovarchar(200)图标logo路径
introducevarchar(2000)介绍
statusint(11)审核状态,0:未审核,1:已审核,-1:审核不通过
categoryIdvarchar(64)所属分类id
creatorvarchar(64)创建者,也即用户表主键
createTimedatetime创建时间
updateTimedatetime更新时间

用户对感兴趣的专栏可以进行关注,那么就有一个专栏的关注信息表,即:

关注专栏信息表:blog_group_fans

字段名类型说明
groupIdvarchar(64)主键
userIdvarchar(64)用户表主键
createTimedatetime创建时间

博客网站最主要的内容就是文章,为此文章信息表极为重要,它的结构如下:

文章信息表:blog_article

字段名类型说明
articleIdvarchar(64)主键
groupIdvarchar(64)专栏信息表主键
typeint(11)文章类型,1:原创,2:翻译,3:转载
titlevarchar(200)标题
descriptionvarchar(2000)描述
contentlongtext内容
statusint(11)文章状态,1:待审核,2:审核通过,-1:审核不通过
canTopint(11)是否置顶,0:不置顶,1置顶
canCommentint(11)是否可以评论,0:不可评论,1:可以评论
viewCountbigint(20)浏览次数
goodNumbigint(20)点赞次数
badNumbigint(20)踩的次数
checkAdminvarchar(64)审核管理员id
createTimedatetime创建时间
createIpvarchar(64)创建时ip
publishTimedatetime发布时间
updateTimedatetime更新时间
userIdvarchar(64)用户表主键

可以为文章打上标签,为此文章与标签的关系表,即:

文章标签关系表:blog_article_tag

字段名类型说明
articleIdvarchar(64)文章表主键
tagIdvarchar(64)标签表主键
createTimedatetime创建时间

用户对于好的文章可以进行收藏,则有一个收藏文章信息表,即:

收藏文章信息表:blog_collect_article

字段名类型说明
userIdvarchar(64)用户表主键
articleIdvarchar(64)文章表主键
createTimedatetime创建时间

6、公共模块

站点有一些配置信息,对于相关的配置信息也可以是放在配置文件中,这里将一些配置信息放置于数据库中,即站点相关配置信息表:

站点相关配置信息表:comm_config

字段名类型说明
configIdvarchar(200)配置项key
configValuevarchar(1024)配置项value
descriptionvarchar(2000)描述

对于记录文件上传下载信息,则需要上传文件信息表:

上传文件信息表:comm_upload_file

字段名类型说明
uploadFileIdvarchar(64)主键
pathvarchar(200)保存文件路径
orignalNamevarchar(200)文件原始名称
fileSizebigint(20)文件大小
fileTypevarchar(200)文件类型
distTypevarchar(200)实体类型
userIdvarchar(64)用户id
createTimedatetime创建时间
downloadNumbigint(20)下载次数

评论模块对于网站来说也是必不可少的,所以记录评论信息的表如下:

评论信息表:comm_comment

字段名类型说明
commentIdvarchar(64)主键
distIdvarchar(64)评论目标id
distTypevarchar(200)目标类型
contenttext评论内容
userIdvarchar(64)评论人的id
goodNumbigint(20)点赞数
createTimedatetime创建时间
createIpvarchar(32)评论时的ip

评论回复信息表:comm_comment_reply

字段名类型说明
commentReplyIdvarchar(64)主键
replyDistIdvarchar(64)回复目标id
replyDistTypevarchar(200)回复目标类型
contenttext回复内容
fromUserIdvarchar(64)回复用户id
toUserIdvarchar(64)被回复人的id
goodNumbigint(20)点赞数
createTimedatetime回复时间
createIpvarchar(32)回复时的ip
commentIdvarchar(64)评论id

根据前面的需求,是有一个私信的功能,那么私信相关的表如下:

私信信息表:comm__message

字段名类型说明
messageIdvarchar(64)主键
senderIdvarchar(64)发信者ID
receiverIdvarchar(64)收信者ID
contenttext私信内容
isReadint(10)是否已读标识,1表示已读;0表示未读
senderDelint(10)发信者是否删除,1表示删除;0表示未删除
receiverDelint(10)收信者是否删除,1表示删除;0表示未删除
createTimedatetime创建时间

记录业务日志信息,可以为查找问题提供很好证明,为些日志信息表为:

日志信息表:comm_log

字段名类型说明
logIdvarchar(64)主键
userIdvarchar(64)用户表主键
ipvarchar(32)操作时的ip
distTypevarchar(200)操作目标类型
distIdvarchar(64)操作目标id
contentvarchar(2000)日志内容
createTimedatetime创建时间

关注我

以你最方便的方式关注我:
微信公众号:
840503-20190415134335198-582664.jpg

转载于:https://www.cnblogs.com/atcloud/p/10710215.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值