數據庫的建立表格
?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;}
};