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

创建完成结果如下:

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

相关推荐
X-⃢_⃢-X9 分钟前
十、Redis之布隆过滤器
数据库·redis·缓存
Nturmoils12 分钟前
订单号查出了三笔,我以为是数据脏了,其实是自己写错了
数据库
ZKNOW甄知科技16 分钟前
燕千云深度集成飞书:以AI之力,开启无感IT运维体验
大数据·运维·网络·数据库·人工智能·低代码·集成学习
TDengine (老段)31 分钟前
TDengine 免费版说明
java·大数据·数据库·物联网·时序数据库·tdengine
汉知宝科技31 分钟前
历史案件数据迁移:知识产权管理系统落地的第一道门槛
大数据·数据库
乐观勇敢坚强的老彭33 分钟前
信奥C++一维数组笔记
开发语言·c++·笔记
码上有光35 分钟前
异常和智能指针
java·大数据·c++·servlet·异常·智能指针
RisunJan41 分钟前
Linux命令-semanage(SELinux 策略管理)
linux·运维·服务器
这就是佬们吗41 分钟前
Python入门⑤-异常处理、文件操作与实战项目
开发语言·数据库·python·算法·pycharm
吴声子夜歌42 分钟前
MongoDB 4.x——SpringBoot框架整合
数据库·spring boot·mongodb