C++集群聊天服务器(3)—— 项目数据库以及表的设计

项目要想启动,我们首先要把数据库设计好!

一、MySQL环境安装设置

ubuntu环境安装mysql-server和mysql开发包,包括mysql头文件和动态库文件,命令如下:

bash 复制代码
sudo apt-get install mysql-server   //安装最新版MySQL服务器
sudo apt-get install libmysqlclient-dev  //安装开发包

具体详细操作大家可以网上查询,我这里不多说了,直接进入正题~

二、创建数据库及表

首先我创建了一个名为chat的数据库:

接着切换到chat数据库,创建表:

这样一个表就创建好了,我们一共要创建五张表供这个项目使用,代码如下:

sql 复制代码
-- 创建 User 表
CREATE TABLE User (
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '用户id',
name VARCHAR(50) NOT NULL UNIQUE COMMENT '用户名',
password VARCHAR(50) NOT NULL COMMENT '用户密码',
state ENUM('online', 'offline') DEFAULT 'offline' COMMENT '当前登录状态'
);
 
-- 创建 Friend 表
CREATE TABLE Friend (
userid INT NOT NULL COMMENT '用户id',
friendid INT NOT NULL COMMENT '好友id',
PRIMARY KEY (userid, friendid) COMMENT '联合主键'
);
 
-- 创建 AllGroup 表
CREATE TABLE AllGroup (
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '组id',
groupname VARCHAR(50) NOT NULL COMMENT '组名称',
groupdesc VARCHAR(200) DEFAULT '' COMMENT '组功能描述'
);
 
-- 创建 GroupUser 表
CREATE TABLE GroupUser (
groupid INT NOT NULL COMMENT '组id',
userid INT NOT NULL COMMENT '组员id',
grouprole ENUM('creator', 'normal') DEFAULT 'normal' COMMENT '组内角色',
PRIMARY KEY (groupid, userid) COMMENT '联合主键'
);
 
-- 创建 OfflineMessage 表
CREATE TABLE OfflineMessage (
userid INT PRIMARY KEY COMMENT '用户id',
message VARCHAR(500) NOT NULL COMMENT '离线消息(存储Json字符串)'
);

创建完成结果如下:

这样项目数据库以及表的设计就完成了!

相关推荐
Decay__1 小时前
05_MySQL 常用 SQL 大全 —— 诊断、管理、优化辅助 SQL 与三大系统库速查
运维·数据库·sql·mysql·架构
HideF4 小时前
Linux
linux·服务器·网络
C^h4 小时前
c++ string
开发语言·c++
raindayinrain4 小时前
c++高性能--原子操作,无锁编程,操作顺序
开发语言·c++·性能优化
学逆向的4 小时前
C++ 合并命名空间
开发语言·c++·网络安全
Zhao-Jichao5 小时前
VS2026 打包 C++ 程序生成 EXE,借助 Installer Project 扩展工具
开发语言·c++
小徐不徐说6 小时前
C++ 接口与插件设计:从工厂注册到 Qt 动态插件
数据库·c++·qt·系统架构·程序设计
大都督会赢的6 小时前
C++第一节课
开发语言·c++
UIU1146 小时前
P1233 [ICPC 2001 Taejon R] 木棍加工
数据结构·c++·算法·动态规划
Ruiery6 小时前
Linux 6.6内核内存管理深度解析(十三):slab/slub 分配器
linux·运维·服务器