具有聊天功能的Blog实现 第四章 BLOG系统设计
{ lblErrorMsg.Text = \这个用户名已经存在,请更换后重试.\ return; } Response.Redirect( \ }
bool ValidateNick( string nick ) { if( nick == string.Empty ) { lblErrorMsg.Text = \请在这输入呢称.\ return false; } if( nick.Length > 10 ) { lblErrorMsg.Text = \呢称太长, 请不要超过10个字\ return false; } return true;
}
4.2.4 在线聊天模块
在线聊天界面如下:
图4.6 聊天窗口界面
该页面采用了ajax技术实现页面无刷新只在聊天窗口实现数据更新,完成信
第 18页 共24页
具有聊天功能的Blog实现 第四章 BLOG系统设计
息交互的功能,达到了很好的聊天效果。
关键方法代码如下: function postText() { rnd++; chatbox = getElement( \ chat = chatbox.value; chatbox.value = \ userid = location.search.substring( 1, location.search.length ); url = 'Server.aspx?action=PostMsg&u=' + userid + '&t=' + encodeURIComponent(chat) + '&session=' + rnd; req = getAjax(); req.onreadystatechange = function()
{ if( req.readyState == 4 && req.status == 200 ) { updateAll(); } } req.open( 'GET', url, true ); req.send( null ); }
4.3 数据库的详细设计 4.3.1 数据表设计
博客系统中的数据管理形式采用数据库,根据系统需要与数据规范化分为用户表ST_admin,类型信息表(ST_class),链接信息表(ST_link),留言信息表(ST_message),文章信息表(ST_news),评论信息表(ST_replay)这六个表,表结构分别如下:
表1 ST_admin(用户表) 序号 1 2 列名 ST_admin_user ST_admin_psw 数据类型 Nvarchar Nvarchar 长度 50 50 字段说明 管理员ID 管理员密码 该表为管理员登录的信息表,本系统没有包含管理员用户的注册模块,管理员帐号直接在数据库中设计。普通用户匿名登录主页。
表2 ST_class(类型信息表) 序号 1
列名 ST_c_id 数据类型 Bigint 第 19页 共24页
长度 8 字段说明 文章类型号 具有聊天功能的Blog实现 第四章 BLOG系统设计
2 ST_c_name Nvarchar 50 文章类型名 该表用来记录文章类型的相关信息,系统文章分了类别,使管理文章,查看文章都变的非常的方便。
表3 ST_link(链接信息表) 序号 1 2 3 列名 ST_l_id ST_l_name ST_l_url 数据类型 Bigint Nvarchar Nvarchar 长度 8 50 50 字段说明 链接号 链接名 链接地址 该表记录了链接的相关信息,方便用户快速的链接到想浏览的网站,提高了用户的操作效率。
表4 ST_message(留言信息表) 序号 1 2 3 4 5 6 7 列名 ST_id ST_nickname ST_title ST_homepage ST_content ST_mdate ST_hf 数据类型 Bigint Nvarchar Nvarchar Nvarchar Ntext Datetime Ntext 长度 8 50 50 50 16 8 16 字段说明 留言号 网友呢称 留言标题 个人主页 留言内容 留言时间 留言回复 该表包含了留言的相关信息,留言模块方便普通用户和版主之间的交流,为他们提供了一个专门的途径。
表5 ST_news(文章信息表) 序号 列名 数据类型 第 20页 共24页
长度 字段说明 具有聊天功能的Blog实现 第四章 BLOG系统设计
1 2 3 4 5 6 7 8 9 10 11
ST_n_id ST_n_author ST_n_title ST_n_key ST_n_content ST_n_date ST_n_hit ST_n_re ST_c_id ST_c_name ST_n_iscmd Bigint Nvarchar Nvarchar Nvarchar Ntext Datetime Bigint Bigint Bigint Nvarchar int 4 50 200 200 16 8 8 8 8 50 4 文章号 文章作者 文章标题 文章摘要 文章内容 文章发表日期 文章人气 文章回复 文章类型编号 文章类型名称 文章回复数 该表为文章信息表,包含了文章的相关属性,用来记录文章信息。该模块可以帮助用户了解文章的基本信息。比如:文章人气高可能是内容很有意义,方便用户去阅读那些比较好的文章。
表6 ST_replay(评论信息表) 序号 1 2 3 4 5 6 列名 ST_r_id ST_r_nick ST_r_title ST_r_content ST_r_date ST_n_id 数据类型 Bigint Nvarchar Nvarchar Nvarchar Datetime Int 长度 8 50 50 250 8 4 字段说明 评论号 呢称 评论标题 评论内容 评论发表时间 评论文章编号 此表为评论信息表,用来记录评论信息。评论也是用户的一种交流方式。该模块加强了用户之间的沟通。
4.3.2数据库访问
该系统数据库的连接在应用程序配置文件(Web.config)中设置了数据库的连接信息。这样提高了程序的的移植性,且为版本升级,代码扩展提供了良好的
第 21页 共24页
具有聊天功能的Blog实现 第四章 BLOG系统设计
基础。连接语句代码如下:
name=”RewriteConfig”type=”URLRewrite.Config.RewriteConfigSerializerSectionHandler,URLRewrite”/> Security info=True;User ID=sa;Initial Catalog=ST_Blog;DataSource=127.0.0.1;”/> … 在功能代码中用如下语句与数据库关联: Protected void Page_Load(object sender,System.EventArgs e) { } String ST_dns=ConfigurationSettings.AppSettings[“conn”]; ST_myconn=new OleDbConnection(ST_dns); 第五章 结束语 5.1 不足之处与改进 本系统现已基本完成,基本功能已经具备,但在如下几个方面还存在着不足,需要做进一步的研究与开发,使Blog系统能够更完善。 5.1.1 权限分配 本系统权限分配不够细化,只分为管理员和普通用户。管理员可以对数据库进行所有操作,普通用户只能浏览文章,发表回复,在线聊天。而不能发表自己的文章,管理自己的文章,缺乏作为低级管理员的功能。如果我们能在数据库中为各种不同的用户分配不同的角色来细化权限的分配,这样可以便于我们对系统的管理和维护,也能够更多的满足广大用户的需求。 5.1.3 界面美观化 第 22页 共24页