鉴于大家对ASP类作品十分关注,我们编辑小组在此为大家搜集整理了“基于ASP网络论坛平台的设计”一文,供大家参考学习!
客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
第三章系统的设计 3.1系统功能模块的设计 论坛的主要作用是允许用户浏览论坛中已有的内容,针对别人的主题展开讨论,也可以发表自己的观点供大家品评。同时为了防止用户公布一些不健康不合法的内容,需要有管理人员来对这些内容进行删除修改。再扩展一点,若用户想在论坛发布信息则要求他必须注册,这样可以控制用户发布信息的合法性,一旦不合法我们就可以删除他的注册信息,不允许他再来论坛发布非法内容。这样需要管理员对用户和内容都要进行管理。 对于一个多个版面的论坛,用户可以注册,浏览论坛版面和帖子,发布自己的帖子。管理人员可以设置论坛的系统参数,管理注册用户和版面。 当一个用户来到论坛后可以看到版面列表,以及论坛的公共信息。通过版面他可以看到相关的帖子。如果需要进一步的功能,就需要用户注册。 用户注册以后,可以发表自己的帖子或者回复别人的主题,也可以修改自己的帖子,如果用户发帖数量很多,会给用户一定的积分,达到一定积分后给予某种相关级别的称号。用户也可以发布权限范围内的公共信息。用户也可以升级为版主,可以删除别人的帖子,将帖子置顶,设为精华等。用户还可以修改自己的注册信息,查看其他用户公开的注册信息,并与之联系。 管理人员可以管理版面、帖子、用户、用户权限,设置系统参数,还可以发布公共信息。 设计功能: 首先从用户开始,表中用户关联的对象是自身、版面、公共信息、帖子。分别根据用户与这些对象的联系给出一个明确的菜单。 3.1.1用户功能模块 如表3-1所示 表3-1用户功能列表
此网上论坛可以实现: 游 客:注册新用户。 注册用户:查看帖子、发新帖子、在线发布信息、回复信息、修改个人资料、在线短消息。 管理员:发布公告、帖子管理、论坛设置、版面管理、用户管理、短消息管理、数据库备份。
3.1.2管理功能模块 如表3-2所示 如表3-2管理人员功能列表
网上论坛系统总体分析: 通过上面的功能说明,我们可以将论坛的制作分为四大部分: (1) 网友注册和管理模块:因为引入了站长或者版主,在论坛中就必须能够对其进行身份验证。这个模块的功能,就是管理注册的网友,并能够提供相关的查询。比如,查询指定作者的所有发表的文章,查询当前发表文章最多的十个网友,等等。如果你的论坛不是很大,这个模块可以省略为只带有版主身份验证的功能,而去掉那些关于注册,查询的部分。 (2) 文章显示模块:显示所有版主审核过的,觉得值得推荐的文章。 (3) 发表文章模块:为注册网友提供发表见地的地方,发表后等待版主审阅。 (4) 文章审阅模块:版主对所有网又发表但未经审阅的文章进行处理,已决定是发表还是删除。 了解了具体的功能需求后,就可以按模块的开始论坛的设计了。当然,这些模块的只是在功能上对论坛结构的划分,实际上并不能够完全的把他们独立出来进行设计。对于这种较小的应用,也没有必要进行完全的模块化设计,在良好的规划下直接写程序代码或许来的更为简单一些。 所有的表是设计完了,但是数据库的设计并没有完,所以我们还需要建立表间关系,这样就能够让数据库执行一些相关性检查,避免资料出错。建立表间关系的另外的一个好处,就是通过它能够很容易的建立出复杂的JOIN查询。 通常我们在ASP中操作数据库的时候,都是使用的执行时生成的查询,然后由传递给数据库解释执行。而在这儿我们要用的是存贮查询。与执行时查询比较而言,预存程序具有更多的优点。 它保存在数据库中,独立于ASP程序代码,使得他更容易建立和修改,并且查询的效率更高,速度更快,可以调试好了以后再放在ASP页面中使用,能避免很多问题。而且使用存贮查询的ASP程序代码更加容易阅读和修改。可能大家都对在ASP中使用SQL查询感到很烦,特别是那些逗号啊,分号啊什么的,一不小心就会出错。使用存贮查询后,就可以不用顾虑这些问题了。当然,预存程序再使用上也有一些要注意的地方,在后面我会详细的讲解它的使用方法。在ACCESS中建立预存程序是一件很容易的事,这儿我就不再多说了。在这儿我只给出各个查询的SQL语句程序代码。 我把所有要使用到的查询都作为预存程序保存在了数据库中,主要的有以下的一些: (1)按ID查询文章: SELECT 主题表.标题 AS 主题名, 看板列表.名称 AS 看板名, 内容表.* FROM 主题表 INNER JOIN (内容表 INNER JOIN 看板列表 ON 内容表.看板ID = 看板列表.ID) ON 主题表.ID = 内容表.主题ID WHERE (((内容表.ID)=[articleid])); (2)版主密码查询: SELECT 看板列表.板主, 作者表,密码 FROM 作者表 INNER JOIN 看板列表 ON 作者表.ID = 看板列表.板主 WHERE (((看板列表.ID)=[id]; (3)查询作者: SELECT 作者表.* FROM 作者表 WHERE (((作者表.ID)=[id])); (4)发表文章列表: SELECT [内容表].[ID], [内容表].[标题], [内容表].[作者ID] AS 作者, [内容表].[日期], [内容表].[推荐度], [内容表].[点击次数] AS 点击数。 FROM 内容表 WHERE ((([内容表].[主题ID])=[TopicIndex]) And (([内容表].[发表])=True)); 未发表文章列表: SELECT 内容表.ID AS 文章id, 主题表.ID AS 主题id, 主题表.标题 AS 主题, 内容表.标题 AS 标题, 内容表.作者ID AS 作者, 内容表.日期 AS 日期 FROM 主题表 INNER JOIN 内容表 ON 主题表.ID = 内容表.主题ID WHERE (((内容表.发表)=False) AND ((内容表.看板ID)=[boardid])); (5)主题列表: SELECT 主题表.*, 看板列表.名称 AS 看板名 FROM 看板列表 INNER JOIN 主题表 ON 看板列表.ID = 主题表.看板 WHERE (((主题表.看板)=[boardIndex]));还有一些查询,因为大多类同,我就不一一列出了。 在上面的查询语句中,可以看到一些由"["和"]"包围起来的东西,那就是查询参数了。需要在执行时给出参数值,然后把参数值带入到查询语句中才能够执行。还有一点要注意的是:在建立那些INNER JOIN查询时,是需要把表间关系添加到设计视图中的,否则是不能够自动生成INNER JOIN查询语句的。 到这儿,数据库的设计就算完了,以后的工作就是ASP的事了。 3.2数据库的设计 论坛系统信息的存储一般是在文件或者数据库中,在这里选择数据库,用数据库要简单高效一些,能够对论坛进行更好的控制,也能够对资料提供一些验证和保护。使用数据库的第一步是设计数据库的表结构,一个设计良好的数据库结构,可以提高效率,方便维护,并且为以后进行功能的扩充留有余地。这就好比高楼大厦的地基一样,有了稳固的基础,才能有优秀的成果.下面对论坛的数据库之间的关系做如下简要概括。 基于对功能的分析,我们要设计数据表。对数据表的设计最好使用存储内容的英文单词,在每个名称中还要加入一个标识,表明这是一个表。这是因为数据库中除了表还有视图等其他结构,为了在编程时便于区分,如此设计还是有必要的。论坛中主要用到的数据表有:管理员信息表、帖子信息表、公共信息表、版面信息表、论坛日志表、在线用户表、系统信息表、论坛主题信息表、用户信息表等。 3.2.1 管理员信息表 管理员信息表:管理员信息表是和用户信息表有关联的,其外键就是用户信息表中的用户名,这就要求论坛的管理人员也要是论坛的注册用户。这样做是为了使管理人员在修改了论坛的系统信息后,就可以方便地看到论坛修改后的状态,而不用再注册一个新用户了。 如表3-3所示 表3-3管理员信息表
帖子信息表:在帖子信息表中主要包含了两个用户表的外键和版面编号。在这里还有一个外键是主题编号,它是用来和主题信息表进行关联的。 公共信息表:公共信息表中的内容相对简单一点,它主要记载了编号、版面编号、标题、内容、发布用户名和发布信息字段。 版面信息表:在版面信息表中依然是用了一个版面编号作为主键,这样对于速度是会有很大的提高的。上级版面编号是为了方便分层次找到各级版面,同分层次查询各级版面相关的是版面层数,它存储了该系列版面的层数。主版面编号记录的是该系列版面的最顶端版面的编号,这个可以用来很方便地找出这一系列版面。子版面数量则提供了该版面是否有子版面及子版面数量的信息。 论坛日志表:日志作为查找错误、跟踪论坛活动的凭证,其记录的信息务必保证详实,如果出现错误或者遗漏,在以后分析日志的时候就会出现偏差,因此日志表就需要设计得非常全面。日志表中也有帖子编号和版面编号,但是都不是必需的,这是因为这两个外键是为了记录在论坛中对帖子信息进行操作时需要的信息,当用户浏览其他信息时,这两个外键不是必需的。 3.2.2 用户信息表 在线用户表:在线用户表记录了一个用户来到论坛之后的活动。当用户到论坛的活动很多,记录数据量比较大,整数型的数据会出现溢出现象,导致最后无法记录用户的活动,所以这里使用了双精度型。 如表3-4所示 表3-4在线用户表
系统信息表:论坛设置字段存储了论坛名称、论坛地址、论坛联系方式,即论坛所在网站及网址。 如表3-5所示 表3-5系统信息表
论坛主题信息表:这个表主要记载了论坛中主题帖的信息,建立这个表的原因是用户在浏览论坛中的帖子时先应当看到的是主题列表。 用户信息表:在用户信息表里保存的是所有论坛注册的用户的信息,用户编号是用户在论坛中的惟一标识,是不重复的,同时用户名在论坛中也是不能重复的。 如表3-6所示 表3-6用户信息表
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
本站发布的计算机毕业设计均是完整无错的全套作品,包含开题报告+程序+论文+源代码+翻译+答辩稿PPT | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
本文选自计算机毕业设计http://myeducs.cn |