欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Socket仿qq聊天工具(数据库版一)

程序员文章站 2022-04-08 21:39:22
...

作为一个数据库版本的Socket的仿qq聊天工具。首先最基本的是要有一个用户表。下面是用户表的结构:

CREATE TABLE USER(
   uid INT PRIMARY KEY AUTO_INCREMENT,
   username VARCHAR(50) NOT NULL UNIQUE,
   PASSWORD VARCHAR(50) NOT NULL,
   nickname VARCHAR(50) NOT NULL,
   email VARCHAR(50) NOT NULL
)

正常情况下还应该有一张message的表,记载着有关消息的相关信息。作为消息首先要有消息的id,而后还要明确消息的来源以及去向。而后作为群聊消息来说首先要建立一个群的表。比如我们这个群里面有1,2,3这三个人。比如1要通过这个群发消息,那么就应该把群的id和这条消息发送给服务器,而后服务器根据群的id找到这个群里面有哪些人,而后服务器再根据这些人的id发送消息。

但是在这里就先不考虑群消息了,这里先做一些有代表性的功能,如果后面有扩展再添加吧,或者各位可以自己添加。

#消息表 一对一聊天的消息,群消息和一对一聊天的消息可以合并到一张表中
CREATE TABLE message(
   MID INT PRIMARY KEY AUTO_INCREMENT,
   fromid INT,#发送者的id
   toid INT,#接受者的id
   FOREIGN KEY (fromid) REFERENCES USER(uid),
   FOREIGN KEY (toid) REFERENCES USER(uid),
   content VARCHAR(255),#消息内容
   sendTime DATETIME, #发送时间
   offered TINYINT DEFAULT 1 #是否为离线消息 1是正常的消息 2离线消息
)

这里就暂时不考虑群聊了,还是以快速开发完成该功能为主。

而后是好友的表:

#好友列表
CREATE TABLE friends(
   fid INT PRIMARY KEY AUTO_INCREMENT,
   uid INT,#当前用户
   friends INT,#好友
   FOREIGN KEY (uid) REFERENCES USER(uid),
   FOREIGN KEY (friends) REFERENCES USER(uid),
   UNIQUE(uid,friends) #同一个好友只能加一次
)

作为表就先确定为这三张表吧,用sqlyog呈现出来的结构如下:
Socket仿qq聊天工具(数据库版一)