软件工程毕业设计(论文)基于WEB的西关第一社区BBS论坛系统设计.doc
广 东 交 通 职 业 技 术 学 院 毕业设计(论文)题目名称 西关第一社区开题日期2010 年09 月01 日设计期限 2010 年09 月15 日起 2010 年 10 月09 日止答辩日期2010 年10 月12 日院 系 软件工程系 指导教师学生姓名 广东交通职业技术学院毕业设计(论文)指导教师评语指导教师评语:指导教师评定成绩: 指导教师签名 年 月 日广东交通职业技术学院毕业设计(论文)答辩评语答辩委员会评语:答辩成绩: 答辩小组组长签名 年 月 日摘 要随着Internet技术的逐渐成熟和完善,基于.NET的Web应用开发也日益增加。本文讨论了一种基于三层架构、反射、缓存框架的Web应用开发环境。它包含了两个部分:系统的设计思想和系统功能的实现。系统的设计思想:本系统基于工厂模式中的反射、缓存设计的思想,它包括三层,他们的职责如下:数据访问层负责与数据的交互,即数据的插入、删除、修改以及从数据库读取数据等操作。对数据的可用性和正确性不负责,对数据的用途不了解,不负担任何的业务逻辑。业务逻辑层负责系统领域业务的处理,负责逻辑性数据的生成、处理及转换。对流入的逻辑性数据的正确性及有效性负责,对流出的逻辑性数据及用户数据不负责,对数据的呈现样式不负责。表示层负责接收用户的输入、将输出呈现给用户以及访问安全性验证。对流入数据的正确性和有效性负责,对呈现样式负责,对呈现友好的错误信息负责。本系统具有以下的优点:功能模块与显示模块的分离,同时它还提高了应用系统的可维护性、可扩展性、可移植性、性能优越和组件的可复用性。系统功能的实现:本系统采用简单工厂的反射加缓存设计模式,“西关第一社区”系统可以实现人们发帖、回帖、举行同城活动、咨询求助、二手商品的求购、人才的供求等功能。关键字: 系统功能 三层架构 工厂模式 反射 缓存目 录第一章 前言1第二章 系统的开发平台、开发工具22.1.开发工具22.1.1开发环境22.2.运行环境22.2.1 软件环境22.2.2 硬件环境22.2.3运行环境配置3第三章 系统分析43.1系统需求分析43.1.1 系统需求分析目的43.1.2用户对系统功能的需求43.1.3管理者对系统功能的需求43.1.4系统技术可行性和性能的分析:53.2 非功能性需求分析53.3 系统结构设计63.4数据库E-R图设计6第四章 系统的总体构建74.1系统运作流程74.1.1. 前台用例84.1.2. 后台用例114.2数据库设计15第五章 系统实现265.1各功能模块核心实现265.1.1数据库连接实现265.1.2. 前台界面275.1.3. 用户注册295.1.4. 用户登录305.1.5. 浏览帖子315.1.6. 发表主题325.1.7. 回复帖子335.1.8. 写日志345.1.9. 浏览日志355.1.10. 评论日志375.1.11. 论坛版块管理385.1.12. 版块添加:40第六章 系统性能测试与评价43第七章 总结与展望44参考文献45致谢46第一章 前言BBS已经成为人们获取信息、发表言论的重要场所。它由论坛注册用户所发表的大量主题组成。近些年来,随着校园网建设的发展,大学校园网BBS也越来越火,因此建设一个好的BBS显得越来越有必要了.本文论述了开发一个简单的BBS系统所用到的关键技术和方法。其中运用了ASP.NET技术、MSSQL数据库等等, 对上述技术的实现方法进行了详细的讨论,介绍了在WEB 服务器上,利用ASP.NET技术和ADO 等技术,实现了一个简单的BBS系统的设计与开发,并详细讨论了该系统的实现过程及其结构。论坛是一个经过学习者整理加工过的网络资源汇en集中心,从新闻、学习到娱乐、体育,从文字到视频、音频,BBS汇集了各种形式、内容的网络资源。不少BBS都设有专门的NetResources(网络资源)板块;FTP技术和BT技术的发展更是为BBS站内资源的更新、共享提供了方便。如今,大部分大学的BBS论坛都有相应的FTP服务器,不少BBS还与网络新兴的BT技术、Blog(博客)技术等连接起来BBS水木清华站就有“水木Blog”的栏目)。基于网络的论坛社区也是各种学习资源组合的场所,为学习者提供了学习环境。作为一个学生参与论坛的网络活动可包括许多种学习的意义,在特定板块内,论坛参与者围绕某个话题或者问题,通过发表、回复话题、版面讨论、站内信件等方式进行互动讨论、相互探讨,形成了一种以学习者为中心的学习方式。从教育网内人气排名前十名的论坛的网友参与的情况来看,在各大学习板块里,基本上每张帖子提出的问题都可以得到网友友好的、认真的回复解答,有着浓郁的协作探讨的学习气氛和良好的学习效果。网络学习的本质是一种自主学习,论坛提供了丰富的网络学习资源,使学习者能自主选择和控制学习地点、学习时间、学习方法和学习内容。在论坛里,学生可以自主地围绕学习问题,通过发帖、回复的形式提出讨论,寻求解答帮助,提高了学习的积极性和自主学习的能力。第二章 系统的开发平台、开发工具2.1.开发工具2.1.1开发环境本系统的开发平台采用的主要技术有: 三层架构+反射+缓存服务器为:Internet Information Server(IIS) 5. 0或以上版本开发工具:Dreamweaver CS3,Microsoft Visual Studio 2008运用该技术架构的特点是:可维护性、稳定性强,性能优越,可扩展性强,移植性强、性能优越和组件的可复用性。2.2.运行环境为确保系统运行的效率和可靠性,服务器端应具有较高的软硬件配置,客户端的要求不需要很高。此应用程序可广泛运行于Internet,也可适用于内部的局域网。运行要求如下:2.2.1 软件环境客户端:Windows 98/XPInternet Explorer 6.0以上版本。服务器端:Internet Information Server(IIS) 5. 0或以上版本。数据库:采用MSSQL数据库,运行于服务器端。2.2.2 硬件环境服务器:CPU要求PIII 800以上,内存256MB以上。客户机:CPU要求200MMX以上,内存64MB以上。2.2.3运行环境配置Internet Information Server(IIS) 5. 0或以上版本 + MSSQL 2000以上版本第三章 系统分析3.1系统需求分析3.1.1 系统需求分析目的系统需求分析是本系统开发最重要的一步。需求分析阶段采用面向对象的方法通过定义系统中的关键领域的类来建立模型。分析的根本目的是在开发者和提出需求的人之间建立一种理解和沟通的渠道,明确系统要服务于哪些用户,对这些用户提供哪些服务。用户使用论坛,有一定的流程:用户注册登陆进入论坛,就某个话题(主题帖)展开讨论,通过发帖功能发布新的话题,通过回帖的功能回复已有的话题,通过搜索功能查找已有的话题;管理员通过管理功能创建、编辑、删除论坛的板块,管理注册用户,管理帖子,设置论坛基本参数。3.1.2用户对系统功能的需求1) 用户注册(修改密码,修改个人信息)2) 登陆取得权限3) 注销本次权限4) 浏览网站信息5) 分类浏览论坛版块信息6) 组合条件模糊搜索主题内容7) 个人信息浏览8) 个人信息修改3.1.3管理者对系统功能的需求1) 浏览所有用户的信息2) 注册会员的管理3) 删除不合法的用户4) 添加版块信息5) 论坛版块分类6) 界面风格管理7) 审核管理8) 系统运行记录管理9) 公告管理10) 帮助信息管理11) 广告管理12) 友情链接管理13) 消息管理14) 勋章管理3.1.4系统技术可行性和性能的分析:本系统采用业界流行的MVC分层的设计思想,我们还模仿了在J2EE平台下的Spring框架架构实现:它基于IOC(Inversion of Control,反向控制)和AOP的构架多层j2ee系统的框架,但它不强迫你必须在每一层中必须使用Spring.它简化了开发人员对于一些无关紧要的代码编写。提高开发人员的开发效率。总结上面的技术优点:所以从技术上说本系统拥有:可维护性、稳定性强,性能优越,可扩展性强,移植性强、性能优越和组件的可复用性。3.2 非功能性需求分析 系统拥有简洁友好的外观,页面布局正常,强调秩序,达到安定诚实、信赖的效果;系统进行消息传递顺利通畅;页面下载速率快;并且要求系统具有较高的安全性3.3 系统结构设计本系统是BBS扩展系统。传统的客户机/服务器架构很明显不适合。作业面向Internet上的Web应用,需要浏览器/服务器的架构。因此从总体来说本项目的系统架构如下图3-1所示:图3-13.4数据库E-R图设计数据库中各表的关系如下图所示:数据库中各表的的关系如图3-2所示:第四章 系统的总体构建4.1系统运作流程本系统流程(如图4-1)分为三个方面管理:用户管理,论坛管理和管理员管理。1)用户管理分为:用户注册、用户登陆、用户各项查找管理、用户个人信息和用户空间管理。2)论坛管理分为:版块管理、分类管理、主题管理、版块权限管理3)管理员管理分为:管理员组管理、管理员权限管理 图4-14.1.1. 前台用例会员用例:图4-2管理员用例:图4-34.1.2. 后台用例论坛设置用例:图4-4用户设置用例:图4-5帖子设置用例:图4-6其他设置用例:图4-7系统工具用例:图4-84.2数据库设计数据库名:XiGuanComunity表名:dnt_forums 版块表序号列名数据类型长度小数位标识主键允许空默认值说明1fidint40是是否论坛fid2parentidint40否('0')本论坛的上级论坛或分本论坛的上级论坛或分类的fidiconvarchar3000是板块图标3layersmallint20否('0')论坛层次4pathlistnchar30000否('')论坛级别所处路径的html链接代码5parentidlistchar3000否论坛级别所处路径id列表(暂时不考虑)6subforumcountint40否('')论坛包括的子论坛个数7namenchar500否论坛名称8statusint40否('0')是否显示9colcountsmallint20否('1')设置该论坛的子论坛在列表时分几列显示10displayorderint40否('0')显示顺序11templateidsmallint20否('0')风格id,0为默认12topicsint40否('0')主题数13curtopicsint40否('0')主题数14postsint40否('0')帖子数15todaypostsint40否('0')今日发帖16lasttidint40否('0')最后发表帖子的主题id17lasttitlenchar600否('')最后发表的帖子标题18lastpostdatetime83否('')最后发表日期19lastposteridint40否('')最后发表的用户id20lastposternchar200否('')最后发表的用户名21allowsmiliesint40否('0')允许使用表情符22allowhtmlint40否('0')允许Html代码23allowblogint40否('0')允许将文章添加为Blog24istradeint40否('0')是否是交易版块25alloweditrulesint40否('0')允许版主编辑论坛规则26modnewpostsint40否('0')发帖需要审核27autoclosesmallint20否('0')定期自动关闭主题,单位为天表名:dnt_topics(主题表)序号列名数据类型长度小数位标识主键允许空默认值说明1tidint40是是否主题tid2fidsmallint20否版块fid3iconidtinyint10否(0)主题图标id4typeidint40否(0)主题分类id5readpermint40否(0)阅读权限6pricesmallint20否(0)主题出售价格积分7posternchar200否('')作者8posteridint40否(0)作者uid9titlenchar600否标题10attentionint40否(0)11postdatetimedatetime83否(getdate()发布时间12lastpostdatetime83否(getdate()最后回复时间13lastpostidint40否(0)最后回复帖子ID14lastposternchar200否('')最后回复用户名15lastposteridint40否(0)最后回复用户名ID16viewsint40否(0)查看数17repliesint40否(0)回复数18displayorderint40否(0)0为置顶,<0不显示,=0正常 -1为回收站 -2待审核-3为被忽略19highlightvarchar5000否('')主题高亮识别号20digesttinyint10否(0)精华级别,0321rateint40否(0)评分分数22hideint40否(0)是否为回复可见帖23attachmentint40否(0)是否含有附件24moderatedtinyint10否(0)是否被执行管理操作25closedint40否(0)是否关闭,如果数值>1,值代表转向目标主题的tid26magicint40否(0)魔法id27identifyint40否('0')鉴定id28specialtinyint10否(0)主题类型, 0=普通主题, 1=投票帖, 2=正在进行的悬赏帖, 3=结束的悬赏帖, 4=辩论帖表:dnt_topicidentify(主题鉴定)序号字段名类型长度精度小数位数默认值允许空主键说明1identifyidint4鉴定ID2Namenvarchar50鉴定名称3filenamevarchar50鉴定图片表:dnt_posts1(论坛帖子)序号字段名类型长度精度小数位数默认值允许空主键说明1pidint4(0)帖子PID2fidint4归属版块ID3tidint4归属主题ID4parentidint4(0)父帖ID5layerint4(0)帖子所处层次6posternvarchar20('')帖子作者7posteridint4(0)作者UID8titlenvarchar60标题9postdatetimesmalldatetime4(getdate()发表时间10messagentext16('')内容11ipnvarchar15('')IP地址12lasteditnvarchar50('')最后编辑13invisibleint4(0)是否隐藏, 如果未通过审核则为隐藏14usesigint4(0)是否启用签名15htmlonint4(0)是否支持html16smileyoffint4(0)是否关闭smaile表情17parseurloffint4(0)是否关闭url自动解析18bbcodeoffint4(0)是否支持UBB19attachmentint4(0)是否含有附件20rateint4(0)评分分数21ratetimesint4(0)评分次数表:dnt_forumlinks(友情连接表)序号字段名类型长度精度小数位数默认值允许空主键说明1idsmallint2友情连接ID2displayorderint4显示顺序3namenvarchar100名称4urlnvarchar100连接5notenvarchar200说明6logonvarchar100Logo标志地址表名:dnt_navs 导航表序号列名数据类型长度小数位标识主键允许空默认值说明1idint40是是否菜单id2parentidint40否(0)父亲id3namechar500否名称4titlechar2550否标题5urlchar2550否路径6targettinyint10否(0)打开目标7typetinyint10否(0)类型8availabletinyint10否(0)是否可见9displayorderint40否显示顺序表:dnt_admingroups(管理组权限设置)序号字段名类型长度精度小数位数默认值允许空主键说明1admingidsmallint2管理组id2alloweditposttinyint1允许编辑帖子3alloweditpolltinyint1允许编辑投票4allowstickthreadtinyint1允许置顶5allowmodposttinyint1允许审核帖子6allowdelposttinyint1允许删除帖子7allowmassprunetinyint1允许批量删除8allowrefundtinyint1允许强制退款(当主题被设置为收费阅读时有效)9allowcensorwordtinyint1允许设置词语过滤10allowviewiptinyint1允许查看IP11allowbaniptinyint1允许禁止IP12alloweditusertinyint1允许编辑用户13allowmodusertinyint1允许审核用户14allowbanusertinyint1允许禁止用户15allowpostannouncetinyint1允许发布公告16allowviewlogtinyint1允许查看论坛运行记录17disablepostctrltinyint1发帖不受审核、过滤、灌水等限制18allowviewrealnametinyint1允许查看实名表名:dnt_usergroups 用户组序号列名数据类型长度小数位标识主键允许空默认值说明1groupidsmallint20是是否用户组ID2radminidint4关联管理组ID(因为可以同时是2个组的)4?systemsmallint20否('0')用户组类型(积分组、系统组、管理组)5grouptitlenvarchar500否用户组名称6creditshigherint40否积分上限7creditslowerint40否积分下限8starsint40否星星数目9colorchar70否名称颜色10groupavatarnvarchar600否用户组头像11readaccessint40否阅读权限12allowvisitint40否是否允许访问论坛13allowpostint40否是否允许发新主题14allowreplyint40否是否允许回复15allowpostpollint40否是否允许发起投票17allowgetattachint40否是否允许下载附件18allowpostattachint40否是否允许发布附件19allowvoteint40否是否允许参与投票21allowsearchint40否是否允许搜索24allowuseblogint40否是否允许使用blog26allowtransferint40否是否允许积分转账27allowsetreadpermint40否是否允许设置阅读积分权限28allowsetattachpermint40否是否允许设置下载积分限制32allownicknameint40否是否允许使用昵称36allowviewstatsint40否是否允许查看统计37disableperiodctrlint40否是否不受时间段限制38reasonpmint40否是否将操作理由短消息通知作者39maxpricesmallint20否主题最高售价40maxpmnumsmallint20否短消息最多条数41maxsigsizesmallint20否签名最多字节42maxattachsizeint40否附件最大尺寸43maxsizeperdayint40否每天最大附件总尺寸44attachextensionschar1000否允许附件类型45raterangenchar5000否允许的评分范围46allowspacesmallint20否(0)是否允许申请个人空间47maxspaceattachsizeint40否(0)个人空间附件最大尺寸48maxspacephotosizeint40否(0)个人空间照片最大尺寸49allowdebateint40否(0)是否允许发起辩论50allowbonusint40否(0)是否允许发起悬赏51minbonuspricesmallint20否(0)最低悬赏价格52maxbonuspricesmallint20否(0)最高悬赏价格53allowtradeint40否(0)是否允许发表交易54allowdiggsint40否(0)是否允顶表名:dnt_users序号列名数据类型长度小数位标识主键允许空默认值说明1uidint40是是否用户uid2usernamenchar200否('')用户名3nicknamenchar200否('')昵称4passwordchar320否('')用户密码5secqueschar80否('')用户安全提问码6spaceidint40否(0)个人空间ID,0为用户还未申请空间;负数是用户已经申请,等待管理员开通,绝对值为开通以后的真实Spaceid;正数是用户已经开通的Spaceid7genderint40否(0)性别8adminidint40否(0)用户级别(1为管理员,为超版,为版主,为普通用户)9groupidsmallint20否(0)用户组ID10groupexpiryint40否(0)组过期时间11extgroupidschar600否('')扩展用户组12regipchar150否('')注册IP13joindatesmalldatetime40否(getdate()注册时间14lastipchar150否('')上次登录IP15lastvisitdatetime83否(getdate()上次访问时间16lastactivitydatetime83否(getdate()最后活动时间17lastpostdatetime83否(getdate()最后发帖时间18lastpostidint40否(0)最后发帖id19lastposttitlenchar600否('')最后发帖标题20postsint40否('0')发帖数21digestpostssmallint20否('0')精华帖数22oltimeint40否('0')在线时间23creditsint40否('0')积分数24extcredits1decimal92否('0')扩展积分25extcredits2decimal92否('0')26extcredits3decimal92否('0')27extcredits4decimal92否('0')28extcredits5decimal92否('0')29extcredits6decimal92否('0')30extcredits7decimal92否('0')31extcredits8decimal92否('0')32avatarshowVarchar()3000否头像URL33emailchar500否('')邮件地址34bdaychar100否('')生日35sigstatusint40否('0')是否启用签名36templateidsmallint20否('0')暂时不用吧37newpmint40否('0')是否有新消息38newpmcountint40否(0)新短消息数量39onlinestateint40否