用户管理系统——数据库篇
第一次参与项目,用于管理收集的数据并将用户分类顺便写个博客作为总结。
1数据库设计
添加一个名为Entity.h的头文件
在其中先定义一个基类,包含一些增删改数据库基本操作的虚函数
class Entity
{
public:
virtual bool ToEntity(int ncol, char **values, char **colnames) = 0;
virtual string ToInsertSql(){ throw new exception("not implemented"); };
virtual string ToUpdateSql(){ throw new exception("not implemented"); };
virtual string ToDelSql(){ throw new exception("not implemented"); };
};
之后再定义两个类,对应两张表,分别包含用户信息(用户名,密码等),以及用户分类信息并对sql语句进行封装
1.1用户信息表
class EntityUserInfo :public Entity
{
public:
string id;
string name;
string password;
int type;//1-admin,2-operator,3-data manager
int state;//1-enabled,2-locked by admin,3-locked by 10 password error,4-locked by timeout expired, 9-deleted
public:
static string ToTypeString(int itype)
{
switch (itype)
{
case 1:return "数据管理员";
case 2:return "操作用户";
case 3:return "数据管理员";
default:
return "unknown type";
}
}
static string ToStateString(int istate)
{
switch (istate)
{
case 1:return "正常";
case 2:return "管理员锁定";
case 3:return "密码错误10次锁定";
case 4:return "密码过期锁定";
case 9:return "删除";
default:
return "unknown state";
}
}
public:
virtual bool ToEntity(int ncol, char **values, char **colnames)
{
if (ncol < 8)
return false;
id = values[0];
name = values[1];
password = values[2];
type = atoi(values[3]