日期:2011-05-02 15:44:00 来源:本站整理
基于MySQL的BBS计划(1)[MySQL防范]
本文“基于MySQL的BBS计划(1)[MySQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
1.系统架构:
采取模块化思惟,分为3层:
a.数据存储层:利用MySQL来存放bbs的全部数据,包含用户信息,文章数据,用户信件,用户消息,系统数据(?),关键问题: 数据库的筹划,能否用文件来帮助.
b.系统功效层:完成bbs的基本功效,由多个并列模块构成,向下调用mysql的函数拜候数据库,向上,承受处理恳求,将处理的后果返回上层,按照恳求范例,返回成败后果和其他数据.并且模块高度机动,可以便利的改正增添.包含:
** 用户模块,处理用户的注册,基本数据的改正,权限的改变,网友信息的查询.
** 版面模块,完成文章发表,文章的读取,文章的删除,文章的加标志,读改删权限查抄,此模块对数据库的要求最高.
** 精华区模块,包含精华区的文章,目录的增添,删除,上下移动
(?)读改删权限查抄,目录构造是此中的难点.
** 信件模块,包含发新信件,读删信件,信笺标志,新信件的告诉
** 消息模块,包含发送消息,承受消息,新消息告诉,消息回想,消息存信件.
** 系统动态模块,包含当前上站人数,当前动态,由于变更频繁,此类数据用同享内存实现大概更好.
** 聊天模块,双人聊天能否能鉴戒icq的做法,由双方直接通话,但聊天后果存信件大概较麻烦,同时,为兼容telnet功效,当上层服务层为telnet时,增添专门的模块来举行处理.
** 聊天室模块,操纵同享内存还是数据库?开房间,里面的权限问题.按照需求,还能增添新的功效.比方:活动看板模块,但关于非telnet终端,意义好象不大.....
c.服务层:直接和客户机对话,按照客户机的恳求,调勤奋效模块获得数据,然后将数据发送回客户端,按照客户端的范例,辨别开辟差别的服务模块,并且尽大概公道举行抽象,使对差别的服务层,能共用系统功效层的模块.具体包含:
++ cq66服务端,采纳原cq66的方法,并重新筹划协议,支持系统功效层的全部功效,但要用专门的客户端程序(cq66),假如能做到向下兼容则更好,客户端程序要随服务端的进级而进级,用户大概有点不便.有需求可以在传输历程中加入加密功效,近似ssh.
++ telnet服务端,采取旧bbs的方法,有些功效不支持,客户端无须进级,服务器端要保存客户方的状况,并按照客户端的按键来判断状况的转移,并由此得出所需的数据,(比方阅读某篇文章),然后再向系统功效层恳求数据,然后将数据加以处理(比方加上顶行,尾行)然后返回数据,可以在现有的bbsd上改正,可以省去io模块的计划但难度较大,除文章方面好一点外,其他对比难改,但重新写起太吃力.
++ httpd服务端,所需的功效更少,相对较简单,本来直接调用mysql数据库也行,直接可以用PHP,但考虑到分层的原则,倡议仍用c编CGI的方法实现不知能不能在本来的底子上改正呢?预计不行.
系统的关键和难点:
a.数据库的计划,mysql支持大量的table吗?比方几万?每个用户至少一个表,然后每个版一个表,精华区的表构造大概更复杂.
但应当总会比目前bbs的文件构造清楚一些,效率也高一点吧,排序和cache的功效可以信任mysql吧.
b.mysql中文本字段的大小限制,限制一篇文章不得大于64k不过度吧,并且从效率的角度,将一篇文章以最大2k的块为单位存放大概更好,这样,当telnet用户看文章时,telnet服务器不用每次都查询数据库读取几十k的数据,再将此中的某2k传给用户,可部分补偿数据库字段不能象文件那样从中间读取一部份.不过这样文章字段数据的管理对比复杂.
2.系统开辟筹划:
先考虑用户模块和版面模块,筹划好数据构造,应当很简单和现有bbsd结合
起来的.然后再考虑其他模块?.......
(//以下有空再写.....先睡觉去..hmm.........)
以上是“基于MySQL的BBS计划(1)[MySQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论