基于mysql的bbs设计

5。版面模块设计
所谓分类,更多的是为telnet服务端考虑的,在cq66模式下,用户可以按
照自己的意愿进行分类,反正最后都是直接以版为基本单位访问的。
对于版面文章的访问,存放的时候以整篇文章为参数,文章的分块由本层
完成,如果上层以块为单位传送,则在上层全部传完,组合后,再传参到本层
分解;在读取 的时候,本层则以块为单位访问,如果上层要以全文为单位访问
,则在上层做合并 工作,本层不管。
至于要不要独立出索引,不影响上层的操作,主要和下层的数据库构造有 关,
主要考虑可行性,效率需求等。
权限的检查放在哪里进行呢?还是放在上层吧,其实就telnet服务器端, 和cq66
的客户端,根本不会给一般用户显示特殊指令的菜单,当然,用户可
以直接发送cq66 的指令,服务器方还是要检查的。但应该不用在它下面的功
能模块层再检查一次吧 。 Class BoardManage { private: public: //
有关分类的操作 int GetClassNameInfo( int maxclass, char **classid,
char **澳门新葡亰手机版, classname ); 返回分类的信息,中英文名。 int GetBoardName( int
maxboards, char *classid, char **boardname );
返回某分类中的版面信息,一般分类,直接select .. from sboard where
boardclass == …. 特殊分类则查相应的表。。。。 //
修改需要版面管理员以上的特权 int NewClass( char * newclassname, int
type ); 新建分类,普通分类还是特殊分类, int DeleteClass( char
*newclassname );
删除分类,但不cascade,即本层不负责一致性,由上层负责将
相应的版面的分类信息改为别的。分类改名也是先删再建, int AddClassBoard(
const char *classname, char *newboardname );
将已建好的版加入某分类中,专门针对特殊分类,对一般分类,其
效果和modifyboardinfo一样, int DeleteClassBoard( const char
*classname, char *boardname );
从分类中删除某个版,也是针对特殊分类,对一般分类,效果也
是和modifyboardinfo一样,一个版的分类属性可以为空,即不属 于任何分类。