зачем колонка id в chat_members? И в дальнейшем будет неудобно джойнить, если в chats есть колонка id и в chat_messages колонка id. Лучше их так и называть chat_id и message_id вместо обычного id
В принципе в данной таблице можно обойтись без id. Только создать все необходимые индексы: https://sqlize.online/sql/mysql57/873617c2e8881a694c80512d983c05a0/
То есть переименовать некоторые поля, убрать id из chat_members и можно оставлять?
Для начала да. Остальное зависит от требований к чату. Какие задачи у чата? Где и кем он будет использоваться?
Чат между двумя пользователями, диалог, с временем отправки сообщений, статусом прочитано и юзер онлайном (это уже есть). Как в вк
В вк есть «ответ на сообщение», значит нужно добавить поле reply_to. Плюс разные типы сообщений (голосовое, текст). Значит поле message должно быть или json, или отдельная таблица с содержимым сообщения. В случае с json, необходима колонка int «версия структуры сообщения». Int чтобы можно было делать выборку больше/меньше.
Пока без всего этого :) Только примитивная переписка, позже возможно аттачмент картинки. Просто хотел подготовить правильную структуру бд
Если не секрет, какой стек технологий? Я тоже чат делаю (в свободное время). Изначально взял electron, erlang и postgresql, но в процессе заменил electron на flutter
У меня всё намного проще, php+mysql
Понял. Спасибо. MySQL изначально в вк был, потом почему-то они свой велосипед начали делать. К сожалению, не смог найти информации почему они отказались от общедоступных баз в пользу самописной
Да у них там и пхп свой, видимо кодерам по вечерам скучно было
Похоже на самое правдивое объяснение 😂😂
Обсуждают сегодня