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

创建完成结果如下:

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

相关推荐
全栈老石3 小时前
拆解低代码引擎核心:元数据驱动的"万能表"架构
数据库·低代码
YuMiao5 小时前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议
倔强的石头_21 小时前
kingbase备份与恢复实战(二)—— sys_dump库级逻辑备份与恢复(Windows详细步骤)
数据库
肆忆_1 天前
# 用 5 个问题学懂 C++ 虚函数(入门级)
c++
不想写代码的星星1 天前
虚函数表:C++ 多态背后的那个男人
c++
jiayou642 天前
KingbaseES 实战:深度解析数据库对象访问权限管理
数据库
端平入洛3 天前
delete又未完全delete
c++
李广坤3 天前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
Sinclair3 天前
简单几步,安卓手机秒变服务器,安装 CMS 程序
android·服务器
端平入洛4 天前
auto有时不auto
c++