最新BBS论坛总设计文档.doc
Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateBBS论坛总设计文档BBS论坛总设计文档BBS论坛管理系统设计文档班级:组别: 成员:目录BBS论坛管理系统1需求分析说明书41引言41.1系统概述41.2项目背景52系统功能需求52.1总体功能概述52.2用户登录52.3用户注册62.4发表主题62.5发表回复62.6注销登录62.7管理员登录62.8用户管理62.9论坛管理72.10新增论坛73数据流图73.1顶层数据流图73.2 0层数据流图73.3 1层数据流图83.3.1登录系统83.3.2注册系统93.3.3发表主题93.3.4回复主题93.3.5论坛管理94数据字典104.1数据流104.2数据项12数据库设计151.表结构设计151.1用户信息表(tb_user)151.2主题信息表(message)151.3回复信息表(msgdetail)152. SQL语句设计(建表语句)162.1用户信息表(tb_user)162.2主题信息表(message)162.3回复信息表(msgdetail)17详细设计171.内容概要172.功能总体说明182.1 主要功能组成193界面设计及关键代码193.1 登录页面193.2用户注册页面203.3发表主题页面223.4留言信息列表:223.5留言信息分类:(新增的功能,上次老师答辩说要修改的)223.6发表回复244后台管理264.1用户信息管理264.2论坛信息管理27需求分析说明书1引言1.1系统概述BBS是Bulletin Board System(电子公告栏)的缩写,网络上通常称之为论坛。它通过以文字为主的界面,为广大网友提供一个互相交流的空间。BBS系统将用户划分为游客、用户、管理员3类,他们的权限不同,能够使用的功能也不同。对于系统来说,需要实现的功能总体来说分为以下两大块。前台模块提供给所有用户使用,不论是论坛的注册用户,还是普通的浏览者,都可以进入其中。区别在于随着用户的等级不同,所允许使用的功能也有所不同。后台模块提供给管理人员(包括管理员和版主)使用,以对用户、论坛及文章进行管理维护。普通用户如果试图使用这一模块将被系统拒绝。1.2项目背景 BBS系统的作用在于提供给用户彼此交流的空间,这种交流的方式即使浏览文章和发表文章。因此,对于文章的管理是BBS系统的一个核心功能。发表文章的权力只能给予特定的人群,否则容易失去秩序,基于同样地考虑,修改文章的权力也只能提供给特定的人群。 因此,用户的划分应该成为BBS系统的一个核心思想,系统将用户划分为普通用户、管理员2类,他们的权限不同,各司其职,其中管理员拥有最高的权力,可以对用户、文章、论坛3大对象进行增加、删除及修改操作。 2系统功能需求2.1总体功能概述 BBS系统分为前台和后台两个模块。前台模块的使用对象包括了所有用户(管理员、用户、游客),提供的功能包括注册账号、浏览文章、发表主题、回复主题。后台模块的使用对象为管理员(管理员、版主),提供的功能包括管理用户、管理论坛、管理文章。2.2用户登录用户进入论坛首页,即可点击登录按钮,进入用户登录页面,此页面提供用于填写用户名与密码的表单,页面中有一个【登录】按钮和“注册”的链接,分别提供给3中身份的用户使用:对于已经在论坛注册的用户,在页面输入用户名及密码后,单击登录按钮,如果用户名和密码通过验证,则进入论坛,可以使用前台的全部功能。对于游客,单击“游客”链接即可进入论坛,游客可以浏览其他用户发表的文章,但不允许在论坛中发表文章。对于想注册的用户,单击“注册”链接即可进入注册页面,在填写完相关信息后,即成为BBS系统的用户,拥有了普通用户的所有权限。2.3用户注册在登录页面单击“注册“链接即可进入用户注册页面,此页面提供填写用户注册信息的表单,注册信息包括用户名、密码、确认密码,性别,爱好等等,其中有些信息是必须填的,有些是可以选填的。用户填写完表中信息后,单击确认按钮,如果通过验证,即可成为BBS系统注册用户,此时用户在前台登录页面中登录进去之后,即可使用前台的全部功能。2.4发表主题 注册用户进入某一论坛之后,可以单击主题列表页面上的“快速留言“链接,以使用发表文章的功能,系统将转至发表文章页面,其中填写的内容包括文章的标题和内容。2.5发表回复 在某一话题的帖子列表页面中,注册用户可以单击右上角的“回复主题“链接,发表对该主题的回复内容。2.6注销登录 用户单击页面右上角的“注销登录”链接,则系统会注销用户此次登录的信息,转入用户登录页面。2.7管理员登录 进入后台登录页面,管理员输入用户名和密码即可进入后台管理页面,登录成功后就可以使用后台的全部功能。2.8用户管理 在页面登录后,单击“用户管理”链接,即可进入用户管理页面,页面提供了所有BBS系统所有注册用户信息的表格,管理员可以编辑和删除用户信息。2.9论坛管理 在页面登录后,单击“论坛管理”链接,进入论坛信息管理页面,点击“编辑”即可修改论坛名称和版主。2.10新增论坛在论坛信息管理页面单击“新增论坛”链接,则进入新增论坛页面,只要输入论坛名即可。3数据流图3.1顶层数据流图用户BBS系统管理员注册登录发表主题用户管理论坛管理发表回复3.2 0层数据流图主题信息登录信息更新信息更新信息操作信息操作信息注册信息注册信息注册用户用户信息用户信息表登录管理员用户管理论坛管理主题信息表论坛信息表回复信息表更改个人信息发表主题发表回复回复信息3.3 1层数据流图3.3.1登录系统用户信息用户信息表提示信息验证用户用户名、密码3.3.2注册系统用户信息注册信息用户信息表提示信息注册用户3.3.3发表主题主题信息主题信息表发表主题用户3.3.4回复主题回复信息回复信息表发表回复用户3.3.5论坛管理论坛信息论坛信息表论坛管理管理员新增论坛4数据字典4.1数据流数据流系统名:登录条目名:登录信息来源:用户 去处:用户登录系统数据流结构:用户名+密码简要说明:用户登录的信息输入修改记录:数据流系统名:注册条目名:注册信息来源:用户 去处:注册系统数据流结构:用户名+密码+确认密码+性别+邮箱简要说明:用户注册时的信息记录修改记录:数据流系统名:发表主题条目名:主题信息来源:用户 去处:发表主题系统数据流结构:标题+内容简要说明:用户发表主题时的信息输入修改记录:数据流系统名:发表回复条目名:回复信息来源:用户 去处:主题回复系统数据流结构:作者+回复时间+论坛ID简要说明:用户发表回复时的信息输入修改记录:数据流系统名:新增论坛条目名:论坛信息来源:管理员 去处:论坛管理系统数据流结构:ID+论坛名+版主简要说明:新增论坛时的信息输入修改记录:4.2数据项数据元素系统名登录条目名用户名存储处用户信息表数据元素类型类型varchar长度20取值范围英文或数字含义用户登陆名简要说明记录用户登陆名称数据元素系统名登录条目名密码存储处用户信息表数据元素类型类型varchar长度20取值范围英文或数字含义用户的登录密码简要说明记录用户的登录密码数据元素系统名发表主题系统条目名标题存储处主题信息表数据元素类型类型varchar长度100取值范围英文或数字含义文章的标题简要说明记录文章的标题数据元素系统名发表主题系统条目名内容存储处主题信息表数据元素类型类型varchar长度500取值范围英文或数字含义文章的内容简要说明记录文章的内容数据元素系统名论坛管理系统条目名论坛名称存储处论坛信息表数据元素类型类型varchar长度100取值范围英文或数字含义论坛名称简要说明记录论坛的名称数据库设计1. 表结构设计1.1用户信息表(tb_user)字段名字段类型字段中文名备注idbigint用户标识主键namevarchar2(20)用户名passwordvarchar2(20)密码sexvarchar2(5)性别favorvarchar2(30)爱好addressvarchar2(200)地址1.2主题信息表(message)字段名字段类型字段中文名备注idbigint主键主键user_idbigint用户标识usernamevarchar2(20)留言人titlevarchar2(25)主题messagevarchar2(255)留言内容timevarchar2(50)留言时间clicksint点击率1.3回复信息表(msgdetail)字段名字段类型字段中文名备注idbigint主键主键msg_idbigint主题标识user_idbigint用户标识usernamevarchar2(25)回复人contentvarchar2(255)回复内容timevarchar2(50)回复时间2. SQL语句设计(建表语句)2.1用户信息表(tb_user)CREATE TABLE user ( id bigint(20) NOT NULL AUTO_INCREMENT, name varchar(20) DEFAULT NULL, password varchar(20) DEFAULT NULL, sex varchar(5) DEFAULT NULL, favor varchar(30) DEFAULT NULL, address varchar(200) DEFAULT NULL, PRIMARY KEY (id) 2.2主题信息表(message)CREATE TABLE message ( id bigint(20) NOT NULL AUTO_INCREMENT, user_id bigint(20) DEFAULT NULL, username varchar(20) DEFAULT NULL, title varchar(25) DEFAULT NULL, message varchar(255) DEFAULT NULL, time varchar(50) DEFAULT NULL, clicks int(11) DEFAULT NULL, PRIMARY KEY (id), KEY FK38EB0007DF999838 (user_id), CONSTRAINT FK38EB0007DF999838 FOREIGN KEY (user_id) REFERENCES user (id) 2.3回复信息表(msgdetail)CREATE TABLE msgdetail ( id bigint(20) NOT NULL AUTO_INCREMENT, msg_id bigint(20) DEFAULT NULL, user_id bigint(20) DEFAULT NULL, username varchar(25) DEFAULT NULL, content varchar(255) DEFAULT NULL, time varchar(50) DEFAULT NULL, PRIMARY KEY (id), KEY FKC4565B12DF999838 (user_id), KEY FKC4565B1222724B82 (msg_id), CONSTRAINT FKC4565B1222724B82 FOREIGN KEY (msg_id) REFERENCES message (id), CONSTRAINT FKC4565B12DF999838 FOREIGN KEY (user_id) REFERENCES user (id) 详细设计1.内容概要BBS是Bulletin Board System(电子公告栏)的缩写,网络上通常称之为论坛。它通过以文字为主的界面,为广大网友提供一个互相交流的空间。BBS系统将用户划分为游客、用户、管理员3类,他们的权限不同,能够使用的功能也不同。对于系统来说,需要实现的功能总体来说分为以下两大块。前台模块提供给所有用户使用,不论是论坛的注册用户,还是普通的浏览者,都可以进入其中。区别在于随着用户的等级不同,所允许使用的功能也有所不同。后台模块提供给管理人员(包括管理员和版主)使用,以对用户、论坛及文章进行管理维护。普通用户如果试图使用这一模块将被系统拒绝。2.功能总体说明BBS论坛用户管理用户登录用户注册发表主题发表回复主题信息回复信息后台管理用户管理论坛管理2.1 主要功能组成本系统主要分以下几个功能模块:1、 用户管理:用户注册、用户登录、用户信息修改2、 发表主题:用户在论坛上发表主题信息3、 发表回复:对主题信息进行回复4、 论坛管理:新增论坛5、 后台管理:供管理员使用,包括用户信息管理和论坛信息管理3界面设计及关键代码3.1 登录页面1.功能说明:论坛登录页面2.页面说明:u 输入用户名、密码u 点击登录,进入论坛主页u 点击注册链接跳转到注册页面3.异常处理: 点击登录按钮,密码错误时,提示“密码错误,请重新输入” 当用户名不存在时,提示“用户不存在”4.关键代码<table align="center">登陆界面</table> <html:errors/><html:form action="/login"> <table border="5" align="center"> <tr> <td valign="top">用户名 :</td> <td> <html:text property="name"/><html:errors property="name"/></td> </tr> <tr> <td valign="top">密码 :</td> <td> <html:password property="password"/><html:errors property="password"/></td> </tr> <tr> <td><html:submit value="登录"/></td><td><input type="button" value="点这里进行注册" onClick="window.location='regist.jsp'" /></td> </tr></table>3.2用户注册页面1.功能说明:用户注册页面2.页面说明:u 输入注册信息u 点击注册按钮,即可进行注册u 如果注册成功,自动跳转到登录页面3.异常处理: 点击注册按钮,两次密码不一样时,提示“两次输入的密码不一样” 当用户名已经存在时,提示“用户已存在”4.关键代码<html:form action="/regist" onsubmit= "return check();"> 注册界面<table border="0"><TR><TD align="left">用户名 :</TD><TD><html:text property="name" size="19" /></TD></TR><TR ID="password"><TD align="left">密码 :</TD><TD><html:password property="password"/><html:errors property="password"/></TD></TR><TR><TD align="left">再次输入密码 :</TD><TD><html:password property="password1"/><html:errors property="password1"/></TD></TR><TR><TD align="left">性别:</TD><TD> <input type="radio" name="sex" value="boy" checked/>男 <input type="radio" name="sex" value="girl"/>女</TD></TR><TR><TD align="left">爱好 :</TD><TD> 篮球:<html:multibox property="favor" value="basketball"/> 唱歌:<html:multibox property="favor" value="song"/> </TD></TR><TR><TD align="left">城市 :</TD><TD> <html:select property="city"> <html:option value="Dalian">大连</html:option> <html:option value="Shanghai">上海</html:option> <html:option value="Beijing">北京</html:option> </html:select></TD></TR><TR><TD><html:submit value="注册"/></TD><TD><html:reset value="重置" /></TD></TR></table></html:form>3.3发表主题页面1.功能说明:用户发表主题的页面2.页面说明:用户只要输入主题和内容,点击确定发送,即可进行留言3.4留言信息列表:显示留言的标题、作者、点击率和留言时间,若要回复留言,只需点击标题就可以进入回复留言的页面3.5留言信息分类:(新增的功能,上次老师答辩说要修改的)功能概述:留言信息的分类主要分为3大类(可以按要求新增其他的分类),包括体育类、文学类、生活常识类如点击体育类的链接,将进入有关体育类的论坛,可以看到里面的留言信息,同时可以进行发布留言或者进行留言信息的回复 关键代码: <hr ><font size="5" color="red">当前分类:体育类</font></hr> <br> <br> <div id="allmessage"> <table border="0"> <tr> <td width="300">标题 </td> <td width="150">作者 </td> <td width="100">点击率 </td> <td width="250">时间 </td> <tr/> <tr></tr> <% int i=0; for (Message msg : (List<Message>)session.getAttribute("allmessage") i+; if(i%2=0) %> <tr> <td valign="top"><a href="getmsgdetail.do?messageid=<%=msg.getId()%>&pagenum=1&firsttime=1" ><%= msg.getTitle()%></a> </td> <td valign="top"><%=msg.getUsername()%> </td> <td valign="top"><%=msg.getClicks()%> </td> <td valign="top"><%=msg.getTime()%> </td> </tr> <%else%> <tr bgcolor="#d8d8d8"> <td valign="top"><a href="getmsgdetail.do?messageid=<%=msg.getId()%>&pagenum=1&firsttime=1" ><%= msg.getTitle()%></a> </td> <td valign="top"><%=msg.getUsername()%> </td> <td valign="top"><%=msg.getClicks()%> </td> <td valign="top"><%=msg.getTime()%> </td> </tr> <% %> </table>3.6发表回复输入任意的信息即可进行回复显示回复信息列表关键代码: <div id="allmessage"> <div align="center"><font size="4" color="red">页数: <% int count=(Integer.parseInt(request.getSession().getAttribute("count").toString()-1)/8+1; for(int i=1;i<count+1;i+) %> <a href="getmsgdetail.do?messageid=<%=request.getParameter("messageid")%>&pagenum=<%=i%>&firsttime=0" ><%=i%></a> <%>              <a href="login.do?name=<%=u.getName()%>&password=<%=u.getPassword()%>">返回首页</a> </font></div> <div class="bar"><a>用户名</a><u>留言内容</u>发布时间</div> <br> <% int i=0; for (Msgdetail msg : (List<Msgdetail>)session.getAttribute("msgdetail") i+; %> <table width="800" border="0"> <tr> <td width="100"><%=msg.getUsername()%></td> <td align="right">第<%=(Integer.parseInt(request.getSession().getAttribute("pagenum").toString()-1)*8+i%>楼</td> </tr> <tr> <td></td> <td><%=msg.getContent()%></td> </tr> <tr align="right"> <td></td> <td><%=msg.getTime()%></td> </tr> </table> <hr align="left"> <%> </div> 4后台管理4.1用户信息管理 管理员可以修改和删除用户的信息,并且能进行用户信息的搜索(被搜索到的用户名会以红色字体标记)点击修改的链接,即可进行用户信息的修改4.2论坛信息管理管理员可以根据用户名、留言时间、留言标题的关键字来搜索留言信息,同时可以对搜索到的留言信息进行修改-