
需求
设计一个小说连载网站,用户分为读者和管理员,不同用户权限不同、功能不同。
- 完成读者功能模块:读者注册与登陆、小说章节查询、小说状态情况添加、读者留言。
- 完成管理员功能模块:作者注册与登陆、小说章节查询、小说更新模块、读者信息管理。
- 设计主要数据库表单:
- 小说信息表单,含小说编号、小说名称、作者编号、所属栏目、书评、小说状态、小说章节、小说页数、投票数量等字段。
- 作者信息表单,含作者编号、姓名、个人简介、作者等级、所发表小说编号、是否转录、留言编号等字段。
- 小说评论信息表单,含留言编号、留言内容、评论管理类别、每千字收费标准、排行榜、小说状态、小说类别等字段。
【作者身份:使用字段标记,先以读者身份完成开发,后续根据字段进行迭代开发】
开发指南
一、功能的共性与独立性分析
| 功能类型 | 共性功能 | 读者独立功能 | 管理员独立功能 |
|---|---|---|---|
| 功能项 | 注册与登录、小说章节查询 | 小说状态情况添加、读者留言 | 小说更新模块、读者信息管理 |
二、架构设计
采用前后端分离架构,结合技术栈(前端 Vue + Element UI、后端 Node.js、数据库 MySQL),分层设计如下:
1. 前端层(Vue + Element UI)
-
组件化拆分:
-
公共组件:导航栏(区分读者 / 管理员入口)、分页组件、搜索组件、弹框组件(登录、留言、提示等)。
-
读者专属页面:
- 注册 / 登录页:表单验证、权限控制。
- 小说章节查询页:小说列表展示、章节筛选 / 搜索、章节内容渲染。
- 小说状态添加页:状态选择表单(关联小说)。
- 读者留言页:留言表单、留言列表(含评论管理类别筛选)。
-
管理员专属页面:
- 作者注册 / 登录页:作者信息表单、权限校验。
- 小说更新页:小说信息编辑(章节、状态等)、关联作者。
- 读者信息管理页:读者列表(查询、筛选、编辑 / 删除)。
-
-
路由与权限控制:
- 利用 Vue Router 的导航守卫,区分读者、管理员路由权限(未登录则跳转登录页)。
2. 后端层(Node.js + 框架,如 Koa)
-
接口分层:
- 路由层:区分读者路由(
/user/*)、管理员路由(/admin/*),通过中间件做权限校验(如 JWT 令牌验证)。 - 控制器层:处理前端请求,调用服务层逻辑,返回统一格式的响应(如
{ code, data, msg })。 - 服务层:封装业务逻辑(如注册校验、小说查询逻辑、留言提交规则等)。
- 数据访问层(DAO):封装 MySQL 数据库操作(增删改查),通过 ORM 工具(如 Sequelize)映射数据库表与模型。
- 路由层:区分读者路由(
3. 数据库层(MySQL)
基于整理后的数据库表,重点关注表间关联:
- 小说信息表(novel)与作者信息表(author):通过
author-id外键关联。 - 作者信息表(author)与小说评论信息表(comment):通过
message-id外键关联。 - 小说评论信息表(comment)与小说信息表(novel):可补充
novel-id外键,实现 "评论 - 小说" 关联。
三、模块设计细节
1. 读者模块
-
注册与登录:
- 前端:表单验证(用户名唯一性、密码强度),登录后存储 Token(本地存储)。
- 后端:用户信息入库(读者表),生成 JWT 令牌;登录时校验账号密码,返回 Token。
-
小说章节查询:
- 前端:小说列表(含分类、状态筛选),点击小说进入章节列表,支持章节搜索 / 排序。
- 后端:提供小说列表查询接口(可按栏目、状态筛选)、章节详情查询接口。
-
小说状态情况添加:
- 前端:状态选择表单(关联小说),提交后提示操作结果。
- 后端:校验读者权限,更新小说表的
status字段。
-
读者留言:
- 前端:留言表单(内容、关联小说),留言列表展示(含评论管理类别)。
- 后端:留言入库(评论信息表),关联读者 ID、小说 ID。
2. 管理员模块
-
作者注册与登录:
- 前端:作者信息表单(含等级、是否转录等),登录校验。
- 后端:作者信息入库(作者表),生成管理端 Token;登录时校验权限。
-
小说章节查询:
- 与读者模块共用后端查询接口,但前端可展示更多管理维度(如未审核章节、作者关联等)。
-
小说更新模块:
- 前端:小说信息编辑表单(章节数、页数、状态等),提交后同步更新。
- 后端:校验管理员权限,更新小说表字段。
-
读者信息管理:
- 前端:读者列表(可筛选、分页),支持编辑 / 禁用读者账号。
- 后端:提供读者列表查询、信息更新、状态变更接口。