聊天系统db设计——一对一和分组——Laravel、redis、socket.io、node

Chat system db design - one to one and group - Laravel, redis, socket.io, node

我想知道如何为 聊天系统 - 一对一和群组。 我正在使用 MySQL.

我正在使用 Laravel、redis、socket.io

我只是创建简单的聊天来了解堆栈

我的工作方式

客户端 1 消息 -> Laravel 保存在数据库中并推送到 redis -> 节点 redis 客户端监听 -> socket.io 发送到 -> 客户端 2

群组聊天而不是实时聊天如何工作?

你可以用最少的列构建类似的东西

chat (一对一)

id | message | message_type | sender | reciever | reply_to (optional) | created_at | updated_at | deleted_at (optional)

chat_messages (组)

id | group_id | message | message_type | sender | reply_to (optional) | created_at | updated_at | deleted_at (optional)

如果要实现

,则必须定义groups(group_id - 关系)

你可以更喜欢上面的例子,只有基本的功能。你可以根据你的逻辑更新