数据库的建立表格
user表
字段名称 | 字段类型 | 字段说明 | 约束 |
---|---|---|---|
id | INT | 用户id | PRIMARY KEY, AUTO_INCREMENT |
name | VARCHAR(50) | 用户名 | NOT NULL, UNIQUE |
password | VARCHAR(50) | 用户密码 | NOT NULL |
state | ENUM('online', 'offline') | 当前登录状态 | DEFAULT 'offline' |
friend表
字段名称 | 字段类型 | 字段说明 | 约束 |
---|---|---|---|
userid | INT | 用户id | NOT NULL, 联合主键 |
friendid | INT | 好友id | NOT NULL, 联合主键 |
AllGroup表
段名称 | 字段类型 | 字段说明 | 约束 |
---|---|---|---|
id | INT | 组id | PRIMARY KEY, AUTO_INCREMENT |
groupname | VARCHAR(50) | 组名称 | NOT NULL |
groupdesc | VARCHAR(200) | 组功能描述 | DEFAULT '' |
GroupUser表
字段名称 | 字段类型 | 字段说明 | 约束 |
---|---|---|---|
groupid | INT | 组id | PRIMARY KEY |
userid | INT | 组员id | NOT NULL |
grouprole | ENUM('creator', 'normal') | 组内角色 | DEFAULT 'normal' |
OfflineMessage表
字段名称 | 字段类型 | 字段说明 | 约束 |
---|---|---|---|
userid | INT | 用户id | PRIMARY KEY |
message | VARCHAR(500) | 离线消息(存储Json字符串) | NOT NULL |
数据库配置信息(没有具体实现)
// 数据库配置信息
static string server = "127.0.0.1";
static string user = "root";
static string password = "123456";
static string dbname = "chat";
// 数据库操作类
class MySQL
{
public:
// 初始化数据库连接
MySQL()
{
_conn = mysql_init(nullptr);
}
// 释放数据库连接资源
~MySQL()
{
if (_conn != nullptr)
mysql_close(_conn);
}
// 连接数据库
bool connect()
{
MySQL *p = mysql_real_connect(_conn, server.c_str(), user.c_str(),
password.c_str(), dbname.c_str(), 3306, nullptr, 0);
if (p != nullptr)
{
mysql_query(_conn, "set names gbk");
}
return p;
}
// 更新操作
bool update(string sql)
{
if (mysql_query(_conn, sql.c_str()))
{
LOG_INFO << __FILE__ << ":" << __LINE__ << ":" << sql << "更新失败!";
return false;
}
return true;
}
};
