385-MySQL环境搭建和编程和项目表的设计

MySQL环境安装设置

ubuntu环境安装mysql-server和mysql开发包,包括mysql头文件和动态库文件,命令如下:

sudo apt-get install mysql-server =》 安装最新版MySQL服务器sudo 
apt-get install libmysqlclient-dev =》 安装开发包

ubuntu默认安装最新的mysql,但是初始的用户名和密码是自动生成的,按下面步骤修改mysql的root用户密码为123456
在这里插入图片描述
【step 3】重新用root和123456登录mysql-server
在这里插入图片描述
【step 4】设置MySQL字符编码utf-8,可以支持中文操作
在这里插入图片描述

MySQL数据库编程

我们处于mysql客户端的角色,向mysql-server增删改查操作
在这里插入图片描述
在这里插入图片描述
这里用UserModel示例,通过UserModel如何对业务层封装底层数据库的操作。代码示例如下:
在这里插入图片描述

集群聊天服务器项目表的设计

首先就是要解决数据的问题,作为一个聊天系统,我们的服务器端肯定要有用户的信息,比如说账号,用户名,密码等。
在登录的时候,我们可以查询这个表里面的信息对用户身份进行验证,在注册的时候,我们则可以往表里面去写入数据。
User表
在这里插入图片描述
用户登录之后,首先就是进行聊天业务,我们必须要知道该用户的好友都有谁。
在加好友时,我们就可以往这张表里面去写入信息并在一对一聊天时查询这里面的信息去看好友是否在线。
Friend表
在这里插入图片描述
然后便是群组业务了,群组中我们需要有一个记录群组信息的表,方便我们创建群时往其中去写入数据;

AllGroup表
在这里插入图片描述
同时群里面肯定是有群员的,我们就需要一个记录群成员的表,我们在加入群的时候,把用户id写入这个表。并且在发送群消息的时候查询这个表由服务器向这些成员转发消息。
GroupUser表
在这里插入图片描述
我们的设计目的又要存储离线消息,这就涉及到离线消息发给谁,谁发的,发的什么三个问题,所以我们又需要一个新表来存储离线消息。这样我们一旦有离线消息便可以往这个表里面去写入数据。
OfflineMessage表
在这里插入图片描述

MYSQL创建数据库chat和表

在这里插入图片描述

创建表的语句

USE chat;

CREATE TABLE `user`
(
id INT AUTO_INCREMENT,
name VARCHAR(50) NOT NULL UNIQUE,
`password` VARCHAR(50) NOT NULL,
state ENUM('online','offline') DEFAULT'offline',
PRIMARY KEY(id)
)ENGINE=INNODB;

CREATE TABLE friend
(
`userid` INT NOT NULL,
`friendid` INT NOT NULL,
PRIMARY KEY(`userid`,`friendid`)
)ENGINE=INNODB;

CREATE TABLE allgroup
(
id INT AUTO_INCREMENT,
groupame VARCHAR(50) NOT NULL UNIQUE,
groupdesc VARCHAR(200) DEFAULT'',
PRIMARY KEY(id)
)ENGINE=INNODB;

CREATE TABLE groupuser
(
groupid INT NOT NULL,
userid INT NOT NULL,
groupprole enum('creator','normal') DEFAULT'normal',
PRIMARY KEY(groupid,userid)
)ENGINE=INNODB;

CREATE TABLE offlinemessage
(
userid INT NOT NULL,
message VARCHAR(500) NOT NULL
)ENGINE=INNODB;

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林林林ZEYU

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值