随着网络技术的不断发展,互联网上搜索引擎及其相关网站层出不穷。这些搜索引擎大多功能宽泛,涵盖了包括新闻、影视、音乐、地图、百科和文科等产品,却很少有专门针对问题互动问答的专门平台,且各搜索引擎之间共享问题及解答的能力差,严重影响了网络访问者对问题的深入了解,同时也缺少对问题回答的准确性考量,从而在很大程度上导致学习者通过互联网真正透彻理解和解决问题的效果差。现设计一个基于ASP.NET、LINQ数据库访问技术的问答搜索平台,方便用户解决实际问题,提高互动学习效率。
1 系统分析
1.1 需求分析
通过调查,要求系统需要具有以下功能:1) 要求具有良好的人机交互界面,方便用户使用。2) 用户注册和登录功能,提供不同的管理权限。3) 能够方便快捷的浏览网站中的各类问题和答复情况。4) 设置用户经验升级机制,设置问题回复激励机制。5) 提问者对问题的删除和评分等操作,回复者对答复的修改和完善。6) 管理员用户可查阅修改、删除问题信息、用户权限,并发布相关通知等。7) 其他需求。
1.2 可行性分析
开发任何一个专门的问题搜索和解答的互动网站,在时间和资源上都会受到限制。因此,本系统数据库考虑采用SQL Server 2005,该数据库系统在安全性、准确性、运行速度方面有优势,并且处理数据库量大,效率高。开发环境运行平台是Windows Server 2003 sp1/Windows 7,开发语言是C#。开发平台采用目前应用最广泛的网站开发工具Visual Studio 2008,它集成了大部分开发环境,使用简便。数据库访问技术采用微软公司基于.NET Frame Work 3.5的LINQ,即语言集成查询,通过它在对象和数据领域之间构架桥梁。
2 系统功能结构
该搜索互动平台主要功能由提出用户注册模块、用户登录模块、用户管理模块、提出问题模块、回答问题模块、问题管理模块、选定最优答案模块、搜索问题模块和关闭问题模块这9个模块构成。该系统的主要流程如图1。
2.1数据库设计
系统的在线用户提问实体在于保存用户的提问信息。用户首先在提问页面录入主题、类别、内容、悬赏分数及正确的验证码,其中主题、类别、内容为必填项。可以对用户提出的问题进行恢复,对回复后的问题好的可以将其设置为最佳答案。
用户详细信息除包括基本的信息(如用户及密码)外,还包括已解决问题数、未解决问题数、悬赏分数设定等。
2.2 数据库逻辑结构
完成了数据库实体E-R图的设计后,需要根据实体E-R图设计数据表结构。主要数据表包括tb_Question 问题表和tb_Answer答案表。问题表用于保存用户的提问信息,新建提问时状态字段值为未解决,提问者设置最佳答案时状态变为已解决,提问者关闭提问时状态变为已关闭。答案表用于保存回复的答案信息,提问者设置最佳答案时,将是否为最佳答案字段值设为真。
3 具体功能模块设计与实现
3.1 提问模块设计与实现
3.1.1 提问模块概述
提问模块实现的功能是保存用户的提问信息。用户首先在提问页面录入主题、类别、内容、悬赏分数及正确的验证码,其中主题、类别、内容为必填项,然后便可单机“发送帖子“按钮将提问信息提交到问题列表页中。在加载提问页面时,程序首先会判断用户是否登录,如果没有登录先跳转到登录提示页。在登录对话框中输入正确的用户名、密码和验证码后,单击登录按钮,登录成功后自动跳转到提问页面,同事在导航栏中显示当前登录用户的名称。
3.1.2 提问模块分析
提问模块的流程主要是从新建问题到选择类别填写问题信息,然后是提交问题,在提交问题的操作中涉及到3步,包括提问信息保存到问题数据表中,提问者的未解决问题总数加1,未解决问题总数加1
3.2 问题回复模块设计与实现
3.2.1问题回复模块概述
回复模块实现的功能是对提问模块提出的问题进行回复,并不是所有的问题都允许回复,回复问题的前提如下:1) 该问题没有被提问者关闭或管理员删除。2) 该问题还没有最佳答案。3) 该用户没有回复过该问题。
在回复页面录入回复主题、回复内容及正确的验证码后,单击发送帖子按钮,将回复信息保存数据库的答案表中。回复者登录网站后,有2种方式查找要回复的问题。第一种是在主页上单击我要回答按钮跳转至问题分类页面。第二种是在主页或者其他页的搜索引擎中输入指定关键词,单击搜索答案按钮直接查找问题。
3.2.2问题回复模块分析
在执行进入问题操作时主要应用了查询字符串值技术和Session传值技术。执行提交答案操作时应用了LINQ 2 SQL中对数据库的修改和删除操作。
4 结束语
在此设计的问答搜索互动平台实现了网络互动问答和搜索系统的基本功能,在功能实现过程中用各类计算机相关问题为实例本身也是一个语言学习的过程。在功能上后续应该增加实时交流窗口和用户页面编辑等功能,让具有浓厚兴趣的学习者也参与到该系统的设计开发中来,以便继续完善该系统平台的作用。
参考文献:
[1] 魏一搏,徐夏.LINQ To SQL在ASP.NET数据访问中的应用[J].信息系统工程,2010(3).
[2] 张翼.基于LINQ三层架构仓库管理系统的设计与实现[J].黑龙江科技信息,2010(22).
[3] 王炯炜,胡宏伟.基于LINQ的三层体系结构应用[J].科技信息:学术研究,2008(21).
[4] 李相海,李海波.基于ASP.NET技术的网络教学系统设计与实现[J].软件导刊,2011(2).