[TOC] ## 简介 在本节,我们将首先分析一下要构建项目( ThinkBBS )的功能,便大家对我们要开发的项目有一个初步概念。 ## 用例分析 ThinkBBS 是本教程将要构建的项目名称,是一款论坛软件。此论坛软件是以 [ThinkPHP 技术论坛](https://learnku.com/thinkphp) 作为基础原型来构建。 下面我们简单地从产品用例的角度上来分析 ThinkBBS 的需求,好让大家对我们即将开发的项目有个基础的概念。我们主要从以下三种元素入手: * 角色 * 信息 * 动作 接下来做单独分解。 ## 1. 角色 在 ThinkBBS 里,将会出现以下角色: - 游客 —— 没有登录的用户(前台应用); - 用户 —— 社区注册用户(前台应用); - 运营 —— 辅助管理员做社区内容管理(后台应用); - 站长 —— 权限最高的用户角色(后台应用)。 我们项目在构建过程中前后台是分离的,前后台权限是完全独立的,但在同一平台内高权限用户将包含低权限用户的权限,即 **用户** 拥有 **游客** 的所有权限,**站长** 拥有 **运营** 的所有权限。 ## 2. 信息结构 主要信息有: - 用户 —— 模型名称 User,论坛为 UGC 产品,所有内容都围绕用户来进行; - 话题 —— 模型名称 Topic,ThinkBBS 论坛应用的最核心数据,有时我们称为「帖子」; - 分类 —— 模型名称 Category,话题的分类,每一个话题必须对应一个分类,分类由 **运营** 或 **站长** 创建; - 回复 —— 模型名称 Reply,针对某个话题的讨论,一个话题下可以有多个回复。 ## 3. 动作 角色和信息之间的互动称之为『动作』,动作主要由以下几个: - 创建 Create - 查看 Read - 编辑 Update - 删除 Delete ## 用例 我们将分别讲解角色的用例,为了减少重复,我们对讲解的顺序做了设计,同平台内排后的高权限角色适用前面角色的用例。 ## 1. 游客 - 游客可以查看所有话题列表; - 游客可以查看某个分类下的所有话题列表; - 游客可以按照发布时间和最后回复时间进行话题列表排序; - 游客可以查看单个话题内容; - 游客可以查看话题的所有回复; - 游客可以通过注册按钮创建用户(游客专属); - 游客可以查看用户的个人页面。 ## 2. 用户 - 用户可以在某个分类下发布话题; - 用户可以编辑自己发布的话题; - 用户可以删除自己发布的话题; - 用户可以回复所有话题; - 用户可以删除自己的回复; - 用户可以编辑自己的个人资料。 ## 3. 运营 - 运营可以访问后台; - 运营可以删除注册用户; - 运营可以删除所有的话题; - 运营可以删除所有的回复; - 运营可以 CURD 分类。 ## 4. 站长 - 站长可以修改站点设置; - 站长可以 CURD 后台管理员用户; - 站长可以 CURD 后台角色组; - 站长可以 CURD 后台访问路由。