|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
与其他数据库相比,MySQL易学易用。4。用户模块计划
关于底层数据库,挪用mysql的CAPI函数来举行数据库的修正,外部保留必定的形态变量(比方用户名,仍是留给上一层完成?),对上一层,则供应用户办理的接口。
ClassUserManage{
private:
charmyuserid[20];//用户的id,未上岸前为空
timelogintime;//用户上岸工夫,并用于盘算停止工夫
charloginhost[20];//上站地址。
public:
intNewUser(char*userid,char*passwd);
新建一个用户,判别是不是已有,其他材料临时为空,
firstlogintime,权限等设缺省值。
intUserLogin(char*userid,char*passwd);
用户上岸,考证暗码,
intChangePasswd(char*oldpasswd,char*newpasswd);
修正暗码,请求原暗码分歧。
intChangePriData(char*newname,char*newemail,
char*newaddr);
改动基础数据,泥称,email,住址。。。。
intModifyNumData(intaddlogin,intaddpost);
修正文章数,上站次数,等数据。。。。注重挪用工具。
intUserLogout();
用户加入,修正lastlogin,staytime,loginhost等
//一般查询命令
intQueryCommonData(constchar*userid,int&loginnum,
char*username,int&postnum,
time&lastlogin,char*lasthost);
查询网友基础信息。
//特权指令,函数在完乐成能前,先判别权限。
intQueryPriData(constchar*userid,char*email,
char*addr);
查询基础信息,一般人只能查本人,有特权才干查其别人。
intModifyUserLevel(BOOLisAdd,unsignedlonglevel);
修正用户的权限,
intModifyUserId(char*oldid,char*newid);
char*newemail,char*newaddr);
修正用户的基础数据。
intModifyUserNumdata(char*userid,intaddlogin,intaddpost);
修正用户的文章数等数据。
intModifyUserPasswd(char*userid,char*newpasswd);
修正用户的暗码。
}
以上各个函数难度不年夜,都是实行响应的sql语句,会见mysql数据库,是不是将一样平常指令回到特权指令中往呢?权限的反省,是放在这一层仍是上一层?
这更多的是看思索的侧重点,是看程序的明晰性仍是代码的简洁,大概仍是看代码吧,究竟要思索会见量,别的,下层服务层是不是也应当思索权限反省成绩呢?
5。版面模块计划
所谓分类,更多的是为telnet服务端思索的,在cq66形式下,用户能够依照本人的志愿举行分类,归正最初都是间接以版为基础单元会见的。
关于版面文章的会见,寄存的时分以整篇文章为参数,文章的分块由本层完成,假如下层以块为单元传送,则在下层全体传完,组合后,再传参到本层分化;在读取的时分,本层则以块为单元会见,假如下层要以全文为单元会见,则在下层做兼并事情,本层不论。
至于要不要自力出索引,不影响下层的操纵,次要和上层的数据库机关有关,次要思索可行性,效力需求等。
<P>权限的反省放在那里举行呢?仍是放在下层吧,实在就telnet服务器端,和cq66的客户端,基本不会给一样平常用户显现特别指令的菜单,固然,用户能够间接发送cq66的指令,服务器方仍是要反省的。但应当不必在它上面的功效模块层再反省一次吧。12下一页>全文浏览提醒:尝尝"←→"键,翻页更便利哦!需要处理因此带来的更多的支持工作,这有可能会带来成本上的提高。在这种情况下,一些MySQL学习教程发行商可能倾向于选择别的开源数据库,例如遵循BSD授权的PostgreSQL。 |
|