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字符串)'
);

创建完成结果如下:

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

相关推荐
计算机安禾2 分钟前
【c++面向对象编程】第36篇:析构函数应永远不抛出异常——原因与最佳实践
开发语言·c++
土星云SaturnCloud4 分钟前
32TOPS工业级算力+无风扇全密封!土星云SE110S-WA32边缘计算微服务器深度测评
服务器·人工智能·ai·边缘计算
宋浮檀s5 分钟前
Linux后门持久化排查
linux·运维·服务器
tongluowan0075 分钟前
怎么保证缓存和数据库的一致性
java·数据库·缓存·一致性
ゆづき6 分钟前
假如编程语言们有外号
java·c语言·c++·python·学习·c#·生活
诗句藏于尽头6 分钟前
服务器入侵事件复盘:从发现到修复的完全指南
运维·服务器
恣艺13 分钟前
用Go从零实现一个高性能KV存储引擎:B+Tree索引、WAL持久化、LRU缓存的工程实践
开发语言·数据库·redis·缓存·golang
TDengine (老段)13 分钟前
TDengine 支持数据类型深度解析 — 类型体系、存储编码与选型指南
java·大数据·数据库·系统架构·时序数据库·tdengine·涛思数据
浮尘笔记2 小时前
Java Snowy框架CI/CD云效自动化部署流程
java·运维·服务器·阿里云·ci/cd·自动化
weelinking9 小时前
【产品】00_产品经理用Claude实现产品系列介绍
数据库·人工智能·sql·数据挖掘·github·产品经理