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

创建完成结果如下:

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

相关推荐
liux35282 小时前
从零开始学MySQL:入门基础篇(一)
数据库·mysql·oracle
重生之绝世牛码2 小时前
Linux软件安装 —— kafka集群安装(SASL密码验证)
大数据·linux·运维·服务器·分布式·kafka·软件安装
Volunteer Technology2 小时前
Nginx部署静态项目
运维·服务器·nginx
笃行客从不躺平2 小时前
PG SQL 行转列记录
数据库·sql
王九思2 小时前
Linux cgroup 简介
linux·运维·服务器
zephyr052 小时前
C++ STL unordered_set 与 unordered_map 完全指南
开发语言·数据结构·c++
大锦终2 小时前
dfs解决FloodFill 算法
c++·算法·深度优先
難釋懷2 小时前
Redis桌面客户端
数据库·redis·缓存