聊天室

您所在的位置:网站首页 建群互动话语怎么写 聊天室

聊天室

2024-07-17 06:25| 来源: 网络整理| 查看: 265

文章目录 前言1. 用户数据表——UserData2. 好友列表——FriendsList3. 未读消息列表——OffLineMes4. 群成员列表——GroupList

前言

在进行聊天室项目以前,我从来没有接触过mysql,但是mysql在聊天室的开发过程中起到了非常重要的作用;我们许多功能的实现都需要依靠数据库,毕竟我们的server不可能一直运行,有时一个功能实现的关键就在于数据表。 聊天室的建表我也是根据整体服务器的架构来进行

首先我们需要把每一个用户的基础信息记录下来,

1. 用户数据表——UserData

table:UserData 在聊天之前,我们需要先有好友列表,

2. 好友列表——FriendsList

关于好友列表,我们可以给每一个用户创建一个数据表,这个表的名字为这个用户的用户名"username" table:"username" 其中的username表示好友或群的id,第二列的num表示有一些额外的含义,借助num可以帮助我们完成许多的其他的功能。 比如:0 代表被屏蔽消息的好友, 1 代表普通的好友, 2 代表这是一个群…

但是这种建表方法有一个很大的缺点,当注册的用户量很多的时候我们的数据库会变得很丑陋,那么为了避免这种情况,我们就需要修改建表的方式以及存储的思路。 table:FriendsList 通过这样的建表方式可以把互为好友关系的两个用户放到一行里,避免了每一个用户建一个表,第三列的type栏里依旧可以通过不同的数字来表示不同的属性。在检索好友列表时可以使用这样的语法:

select * from FriendsList where usera = "username" or userb = "username";

其他各种功能也可以依靠这个表来实现

3. 未读消息列表——OffLineMes

当好友列表已经创建好的时候,就可以输入好友的用户名开始聊天了。那么在聊天中,聊天记录的存储就需要一个数据表来记录, table:HisData

如果对方处于离线状态的话,我们未被接收的消息应该存储到一个单独的表里, table:OffLineMes 在处理完这条未读消息之后,我们应该及时的将这条消息删除

4. 群成员列表——GroupList

与好友列表一样,我们可以为每一个群聊建一个数据表,用存放这个群的群成员。

table:"GroupName" 这是最为直观的一种建表方式,我们可以很清晰的知道这个群组里都有哪些成员。但是数据库是用来存储数据的,而不会给用户去看,所以在数据量较小时,我们没有必要去考虑数据库复杂度的问题。而且与好友列表一样,当创建群聊的人数越来越多之后,整个数据库会变得非常的难看。

table:GroupList 同样,第三列数据表示该username在groupname里的职位。 这样建表不仅数据库会变得很整洁,在实现一些后续功能时也会容易很多,而不用在各个数据表之间嵌套查询。

关于C语言操作MYSQL可以参考我的这篇博客: https://blog.csdn.net/qq_51665789/article/details/119350338?spm=1001.2014.3001.5501



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3