一个问答系统的后端项目分析建模

一个类知乎问答系统的后端项目分析建模

一项目概述

  该系统为一款类似知乎的问答系统,用户可进行提问,问答,评论以及点赞,踩等功能,主要为前台IOSAPI提供接口。主要是课题性质的项目,能够支持一定的并发量,界面美观,能够有个好的用户交互环境,以完成问答核心功能。基于此,下方内容便展开了需求分析以及系统建模的讨论。

二主要业务流程

  问答系统主要是用户打开APP注册登录账号,即可查看话题的讨论或者自己提出问题,可以给他方评论,点赞或踩,甚至收藏。

 

  由上可大概知晓该项目的主要功能仅涉及问题的提出,讨论的回复以及其评论,对其回复的支持态度表现,当然还有账号的相关操作,由此可知其功能涉及。

  此外,问题的标签分类以及账号的状态操作也可以考虑后台管理,但此次项目周期较短,因此暂不考虑。

三用例建模

  由上可知,系统暂时仅需要游客与注册用户即可。

  其中游客仅可浏览不得发表回复等操作,注册用户可有全部操作,如下:

  1.用户的注册、登录

  2.可选择标签浏览问题

  3.可提出自己的回答,或新建一个问题

    4.还可对他人的回复评论,点赞,踩等功能

    5.管理账号

  如此,即可根据功能需求画出用例图

 

四概念模型与数据库建模

  设计者的概念模型和最终用户的概念模型。设计模型作为产品设计者的概念模型,是对产品构成结构和操作方式的系统化、结构化描述;相对应的用户模型,是用户在产品使用过程中形成的关于产品构成和操作方式等的结构化理解。而设计者是通过一系列视觉线索,以及用户的产品使用过程将设计模型传递给用户,并最终转换为用户概念模型。

      设计模型和用户模型的最理想状态就是二者完全等同,即产品的所有设计意图和操作方式完全被用户所理解。因此实体的划分与联系至关重要,由功能结构分析可知,系统需包含用户、用户信息、问题、问题标签、回答、收藏、消息实体,大致E-R图如下:

 

我负责的主要模块

通用字段

*

列名

数据类型

长度

唯一

非空

注释

id

int

11

通用主键

created_at

datetime

 

创建时间

updated_at

datetime

 

更新时间

deleted_at

datetime

 

删除时间

用户表(user

*

列名

数据类型

长度

唯一

非空

注释

username

varchar

255

用户名

password

varchar

255

密码

nickname

varchar

255

昵称

email

varchar

255

邮箱

avatar

text

 

头像

status

int

11

状态

user_profile_id

int

11

用户信息逻辑外键

用户信息表(user_profile

*

列名

数据类型

长度

唯一

非空

注释

email

varchar

255

邮箱

phone

varchar

255

手机号

description

varchar

100

个人介绍

问题标签表(tag

*

列名

数据类型

长度

唯一

非空

注释

name

varchar

255

名字

description

varchar

1000

描述

icon

varchar

255

图标url

topic_count

int

11

所属问题个数

问题表(topic

*

列名

数据类型

长度

唯一

非空

注释

title

varchar

255

标题

content

text

1000

简述

user_id

Int

11

用户id

comment_count

int

11

评论总数

collect_count

int

11

收藏总数

view

int

11

点击量

top

bit

1

是否置顶

up_count

int

11

点赞次数

down_count

Int

11

点踩次数

标签-问题表(topic_tag

*

列名

数据类型

长度

唯一

非空

注释

tag_id

int

11

标签id

topic_id

int

11

问题id

五总结

  此博客是对一个问答系统的后端接口设计的需求分析,通过对需求的摸索,讨论了主要的功能模块,以及用例的涉及,最后根据功能与用户的关系,分析概念模型,画出E-R图,分清表与表的联系与构造。

posted @ 2020-11-30 22:11  明天去你那玩  阅读(683)  评论(1编辑  收藏  举报