@Popchik

Какой тип и логику выбрать для базы данных мессенджера?

Итак, идея данного мессенджера заключается в том, что диалоги хранятся только локально на девайсах пользователей, на сервер ничего не уходит. На сервере же будет хранится только необходимая информация, без которой пользователи не смогут найти друг друга. Вопрос в том, какой же тип и логику лучше выбрать для бд с такой задачей, я в планировке бд не силен, хотелось бы услышать здравую критику и , конечно же, ответ на вопрос
Схема логики бд
59fa22af2d630000967764.jpeg
  • Вопрос задан
  • 1655 просмотров
Пригласить эксперта
Ответы на вопрос 3
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
Нафиг хранение ip пользователя.
Делайте сразу на основе WebRTC и проектируйте систему отталкиваясь от его возможностей. Тогда сможете в будущем без проблем сделать web клиенты которые тоже смогут использовать p2p.
Сервер же будет использоваться как прокси, когда оба (или если групповая переписка - все из группы) пользователя окажутся за непробиваемым NAT.
Естественно все передаваемые данные ассиметрично шифруем в любом случае.
Ответ написан
то, что вы нарисовали не совсем схема данных. Да и не рисуют ее отрывками... ну я не встречал такого. Это у вас смешение диаграммы состояний системы и сущностей БД...
Ответ написан
Комментировать
Demanoidos
@Demanoidos
безнравственный извращенец с богатой фантазией
Вы всё равно рано или поздно упретёсь в необходимость хранения истории на сервере. Для синхронизации, для мультилогина на разных девайсах. Юзеры заставят, проверено на своей шкуре :)

Для локальной базы - идеально SQLite, потому что она нативно уже есть и хорошо работает, а мощь взрослых СУБД вам тут не нужна. Структура - не принципиальна, зависит от ваших данных.

Для серверной базы вам нужно выбрать опять же, базу, которая хорошо сделает то, что вам нужно. nosql базы хороши для складирования и выборки данных, но ужасны для изменения. Для логов и и истории - ок, для работы с данными пользователей - надо нормальный sql. Тип базы - зависит от нагрузок.

И максимально кешируйте всё в памяти. Работать напрямую с базой на сервере - потеря производительности. Опять же, я не знаю, сколько у вас будет онлайн, сложно сказать что-то определённое в этой ситуации.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы