Russian Qt Forum
Апрель 20, 2024, 00:14 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: База и таблицы сообщений сервера и клиентов  (Прочитано 4735 раз)
SektorCT
Частый гость
***
Offline Offline

Сообщений: 215


Просмотр профиля
« : Апрель 24, 2023, 19:12 »

Всем вечера доброго.
Возможно мой вопрос окажется совсем странным:
имеется сервер с базой и таблицей сообщений, в одной таблицу сообщения всех пользователей и всех чатов(если считаете что это не правильно то приму совет как лучше).
И есть клиенты. Хочу со стороны клиента держать так же его базы с сообщениями. Но через клиента может подключится не один юзер а несколько.
Суть вопроса: в каком виде надо держать сообщения со стороны клиента?
1. База одна, под каждого подключенного юзера будет создаваться для него таблица с его личными сообщениями и всеми его чатами.
2. Под каждого юзера создается его база и и под каждый чат уже будет создаваться таблица.

Если важно то на данном этапе ипользую SQlite но позже хотел бы попробовать и с PostgreSQL поработать.
Спасибо за советы.
Записан
ssoft
Программист
*****
Offline Offline

Сообщений: 579


Просмотр профиля
« Ответ #1 : Апрель 26, 2023, 09:06 »

Цитировать
... Но через клиента может подключится не один юзер а несколько ...

Одновременно или по очереди?

Если по очереди, то при процедуре logout локальная база должна быть почищена.
А при процедуре login локальная база должна быть синхронизирована с сервером и/или другими клиентами и/или бекапом.

Синхронизацию можно делать не полную, а только N последних сообщений, а остальное подгружать по мере необходимости.

Цитировать
... имеется сервер с базой и таблицей сообщений, в одной таблицу сообщения всех пользователей и всех чатов(если считаете что это не правильно то приму совет как лучше).

Если цель реализовать чат, то следует выбрать подходящую схему - централизованную или распределенную. Всё зависит от конечной цели.

В централизованной (когда одна общая таблица) необходимо иметь БД со всеми сообщениями всех пользователей, которая будет со временем только расти. Обслуживание такого сервера - большие затраты ресурсов (вычислительных и материальных). БД - единая точка отказ, слабое звено. Чем больше пользователей и их сообщений, тем медленнее работает централизованная БД. Такая схема годится для небольших чатов и для учебных проектов.

В распределенной схеме серверная БД занимается только регистрацией пользователей и диспетчеризацией их соединений, а все сообщения хранятся на стороне пользователя. Пользователь при желании может настроить их бэкапирование на свой облачный ресурс. Здесь не требуется большой БД для хранения сообщений, нагрузка на сервер минимальна. Количество пользователей может быть очень большим.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 22.