集群聊天服务器---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;
    }
};

相关推荐
2301_800256111 小时前
第九章:空间网络模型(空间网络查询、数据模型、Connected、with Recursive、pgRouting)
网络·数据库·算法·postgresql·oracle
xflySnail2 小时前
nas服务域名高速访问-DNS+ESA
运维·服务器·esa·无端口访问
霖霖总总2 小时前
[小技巧19]MySQL 权限管理全指南:用户、角色、授权与安全实践
数据库·mysql·安全
heartbeat..6 小时前
Spring AOP 全面详解(通俗易懂 + 核心知识点 + 完整案例)
java·数据库·spring·aop
麦聪聊数据9 小时前
MySQL并发与锁:从“防止超卖”到排查“死锁”
数据库·sql·mysql
AC赳赳老秦9 小时前
DeepSeek 私有化部署避坑指南:敏感数据本地化处理与合规性检测详解
大数据·开发语言·数据库·人工智能·自动化·php·deepseek
苏宸啊9 小时前
Linux指令篇(一)
linux·运维·服务器
myzshare10 小时前
实战分享:我是如何用SSM框架开发出一个完整项目的
java·mysql·spring cloud·微信小程序
YMatrix 官方技术社区10 小时前
YMatrix 存储引擎解密:MARS3 存储引擎如何超越传统行存、列存实现“时序+分析“场景性能大幅提升?
开发语言·数据库·时序数据库·数据库架构·智慧工厂·存储引擎·ymatrix
ZStack开发者社区11 小时前
ZStack Cloud 5.5.0正式发布
运维·服务器·网络