Дизайн базы данных системы чата — один к одному и групповой — Laravel, redis, socket.io , узел

#php #laravel #redis #socket.io #chat

#php #laravel #redis #socket.io #Чат

Вопрос:

Я хочу знать, как можно построить структуру БД для системы чатов — один к одному и групповое. Я использую MySQL.

Я использую Laravel, redis, socket.io

Я просто создаю простой чат, чтобы понять stack

Как я работаю

Сообщение сообщения клиента 1 -> Laravel сохранить в БД и отправить в redis -> Узел прослушивания клиента redis -> сокет.io отправить -> Клиенту 2

Как это работает для группового чата, а не для живого чата?

Комментарии:

1. кроме того, опубликуйте, что вы пробовали

2. Это слишком общий вопрос. Вам нужно будет выполнить часть работы самостоятельно и сузить свой вопрос до конкретных деталей, как только вы застряли.

Ответ №1:

Вы можете создать что-то подобное с минимальными столбцами

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 — отношение), если вы хотите реализовать

Вы можете предпочесть приведенный выше пример, в нем присутствует только базовая функциональность. вы можете обновлять на основе своей логики