集群聊天室(4):Mysql
·
MySQL 是什么?
MySQL 是一个 关系型数据库管理系统
它的核心职责就三件事:
-
持久化存数据(断电不丢)
-
高效查询数据(SQL)
-
保证数据正确性(事务、并发控制)
对比一下:
| 组件 | 作用 |
|---|---|
| 程序内存 | 快,但断电没 |
| 文件 | 能存,但不好查、并发差 |
| MySQL | 快 + 好查 + 并发安全 |
通过语句进数据库:

创建数据库:


建表语句:
CREATE TABLE `User` (
`id` INT NOT NULL AUTO_INCREMENT COMMENT '用户id',
`name` VARCHAR(50) NOT NULL COMMENT '用户名',
`password` VARCHAR(50) NOT NULL COMMENT '用户密码',
`state` ENUM('online', 'offline') NOT NULL DEFAULT 'offline' COMMENT '登录状态',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_name` (`name`)
) ENGINE=InnoDB
DEFAULT CHARSET=utf8mb4
COMMENT='用户表';
CREATE TABLE `Friend` (
`userid` INT NOT NULL COMMENT '用户id',
`friendid` INT NOT NULL COMMENT '好友id',
PRIMARY KEY (`userid`, `friendid`)
) ENGINE=InnoDB
DEFAULT CHARSET=utf8mb4
COMMENT='好友关系表';
CREATE TABLE `AllGroup` (
`id` INT NOT NULL AUTO_INCREMENT COMMENT '组id',
`groupname` VARCHAR(50) NOT NULL COMMENT '组名称',
`groupdesc` VARCHAR(200) DEFAULT '' COMMENT '组功能描述',
PRIMARY KEY (`id`)
) ENGINE=InnoDB
DEFAULT CHARSET=utf8mb4
COMMENT='群组表';
CREATE TABLE `GroupUser` (
`groupid` INT NOT NULL COMMENT '组id',
`userid` INT NOT NULL COMMENT '组员id',
`grouprole` ENUM('creator', 'normal') NOT NULL DEFAULT 'normal' COMMENT '组内角色',
PRIMARY KEY (`groupid`, `userid`)
) ENGINE=InnoDB
DEFAULT CHARSET=utf8mb4
COMMENT='群成员关系表';
CREATE TABLE `OfflineMessage` (
`userid` INT NOT NULL COMMENT '用户id',
`message` VARCHAR(500) NOT NULL COMMENT '离线消息(存储 JSON 字符串)',
PRIMARY KEY (`userid`)
) ENGINE=InnoDB
DEFAULT CHARSET=utf8mb4
COMMENT='离线消息表';

更多推荐


所有评论(0)