集群聊天服务器---MySQL数据库的建立

数据库的建立表格

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;
    }
};

相关推荐
敖正炀2 分钟前
MySQL 反模式与排查宝典
mysql
酿情师3 分钟前
FinalShell 下载与安装指南
linux·服务器·windows·ssh
taocarts_bidfans5 分钟前
Taoify与Redis、Nginx集成实战:提升跨境独立站性能与并发能力
数据库·redis·nginx·跨境电商·独立站
wang3zc10 分钟前
CSS如何实现元素镜像翻转_使用transformscalex负值
jvm·数据库·python
灵晔君10 分钟前
【Linux】进程(二)
linux·运维·服务器
gs8014014 分钟前
逃离“时间回廊”:深度解析华为 FusionCompute 虚拟机时间回退迷局
运维·服务器
CLX050514 分钟前
Golang如何做图片处理缩放_Golang图片处理教程【收藏】
jvm·数据库·python
MongoDB 数据平台18 分钟前
官宣:MongoDB 正式内置到 Claude Code
数据库·mongodb
TEC_INO18 分钟前
Linux57:读取人脸数据库并保存到map
数据库·oracle
阿苟19 分钟前
数据库重点难点
redis·后端·mysql