|
|
|
Проектирование БД для чата с комнатами
|
|||
|---|---|---|---|
|
#18+
IceJOKERя же выше дважды по пальцам объяснил разницу: беседы доступны лишь создателю и тем кого он пригласил, эти беседы никому не видны кроме как участникам беседы и беседы удаляются как только последний человек выйдет оттуда комнаты доступны всем, в него могут заходить любые пользователи, общаться, выходить, потом снова заходить и комнаты все время будут им доступны, комнаты не удаляются когда последний человек выходит оттуда, пылятся и ждут участников - кто-то зашел - радуется, не зашел - ждет. Вся эта разница - исключительно в поведении приложения, с точки зрения хранения данных полностью достаточно флага в таблице dialogs. Кстати, как планируете реализовать "приглашения к беседе"? Флагом в таблице dialogs_users? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2015, 15:26 |
|
||
|
Проектирование БД для чата с комнатами
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинIceJOKERя же выше дважды по пальцам объяснил разницу: беседы доступны лишь создателю и тем кого он пригласил, эти беседы никому не видны кроме как участникам беседы и беседы удаляются как только последний человек выйдет оттуда комнаты доступны всем, в него могут заходить любые пользователи, общаться, выходить, потом снова заходить и комнаты все время будут им доступны, комнаты не удаляются когда последний человек выходит оттуда, пылятся и ждут участников - кто-то зашел - радуется, не зашел - ждет. Вся эта разница - исключительно в поведении приложения, с точки зрения хранения данных полностью достаточно флага в таблице dialogs. Кстати, как планируете реализовать "приглашения к беседе"? Флагом в таблице dialogs_users? вот я и пока остановился на флаге в users, а не на dialogs(свой выбор недавно объяснял), но пока в тестовом режиме. Пока думаю без приглашения сделать, т.е. пользователь может сразу добавить своих друзей в беседу. dialog_users id, dialog_id, user_id, confirm(можно столбец подтверждения тоже) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2015, 15:36 |
|
||
|
Проектирование БД для чата с комнатами
|
|||
|---|---|---|---|
|
#18+
IceJOKERя же выше дважды по пальцам объяснил разницу: беседы доступны лишь создателю и тем кого он пригласил, эти беседы никому не видны кроме как участникам беседы и беседы удаляются как только последний человек выйдет оттуда комнаты доступны всем, в него могут заходить любые пользователи, общаться, выходить, потом снова заходить и комнаты все время будут им доступны, комнаты не удаляются когда последний человек выходит оттуда, пылятся и ждут участников - кто-то зашел - радуется, не зашел - ждет. Нет, я логику действий не совсем понимаю. Общий чат, он как стена — кто хочешь заходит, смотрит, пишет и отвечает другим, возможно удаляет или исправляет свои сообщения. В случае с беседой я позвал конкретных людей, что-то обсудили и договорились. Для чего выходить из нее? Висит себе и висит, хлеба не просит, в случае необходимости можно поднять и вернуться к обсуждению, иначе она сама уходит вниз и не мешается. Кстати, а приватные сообщения в чатах будут доступны? Помнится, когда лет 15 назад сидел в чатах, такой функционал уже был. Как это будет реализовано? У сообщения в комнате будет указан конкретный адресат? А модерирование будет? Удаление из комнат/бесед пользователей, удаление сообщений, баны и т.п.? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2015, 15:37 |
|
||
|
Проектирование БД для чата с комнатами
|
|||
|---|---|---|---|
|
#18+
Кот Матроскина что, есть уверенность что именно быстродействие серверной части является критичным требованием к системе? Вопрос не столько быстродействия, сколько ресурсов. Эта "серверная часть" будет грузить ввод-вывод там, где этого вообще не требуется. Займёт кучу места на диске, будет туда-сюда шуршать вставками-удалениями... Кот Матроскинни Вы ни я не знаем какие требования к системе существуют прямо сейчас. Знаем. Никаких. Если бы существовали какие-то требования, наш друг не занимался бы подобной фигнёй :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2015, 15:40 |
|
||
|
Проектирование БД для чата с комнатами
|
|||
|---|---|---|---|
|
#18+
Появилось еще пару вопросов: 1. Как хранить сообщения, чтоб при удалении с одной стороны - они не удалялись у других участников беседы, т.е. человек общается , к примеру, тет-а-тет, решил очистить чат и чат очищается только у него, а не у собеседника 2. И как хранить ответы пользователей? Добавить столбец to_user в messages и заполнять его если пользователь отвечает или как? p.s. я не новичок в этом деле, но и опыта не так много , поэтому написал с надеждой, что более опытные пользователи предложит варианты по-лучше, дадут рекомендации, вот чего я от вас жду, как лучше сделать, как не стоит, поэтому просьба развернуто объяснить почему стоит или не стоит делать так или иначе, а не просто написать НЕ ДЕЛАЙ ТАК И спасибо тем, кто уже помог(-ает) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2015, 15:43 |
|
||
|
Проектирование БД для чата с комнатами
|
|||
|---|---|---|---|
|
#18+
boottyIceJOKERя же выше дважды по пальцам объяснил разницу: беседы доступны лишь создателю и тем кого он пригласил, эти беседы никому не видны кроме как участникам беседы и беседы удаляются как только последний человек выйдет оттуда комнаты доступны всем, в него могут заходить любые пользователи, общаться, выходить, потом снова заходить и комнаты все время будут им доступны, комнаты не удаляются когда последний человек выходит оттуда, пылятся и ждут участников - кто-то зашел - радуется, не зашел - ждет. Нет, я логику действий не совсем понимаю. Общий чат, он как стена — кто хочешь заходит, смотрит, пишет и отвечает другим, возможно удаляет или исправляет свои сообщения. В случае с беседой я позвал конкретных людей, что-то обсудили и договорились. Для чего выходить из нее? Висит себе и висит, хлеба не просит, в случае необходимости можно поднять и вернуться к обсуждению, иначе она сама уходит вниз и не мешается. Кстати, а приватные сообщения в чатах будут доступны? Помнится, когда лет 15 назад сидел в чатах, такой функционал уже был. Как это будет реализовано? У сообщения в комнате будет указан конкретный адресат? А модерирование будет? Удаление из комнат/бесед пользователей, удаление сообщений, баны и т.п.? пока остановимся на комнатах и беседах (: остальное пока не важно, над этим можно будет потом подумать.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2015, 15:45 |
|
||
|
Проектирование БД для чата с комнатами
|
|||
|---|---|---|---|
|
#18+
softwarerКот Матроскина что, есть уверенность что именно быстродействие серверной части является критичным требованием к системе? Вопрос не столько быстродействия, сколько ресурсов. Эта "серверная часть" будет грузить ввод-вывод там, где этого вообще не требуется. Займёт кучу места на диске, будет туда-сюда шуршать вставками-удалениями... Потребность системы в ресурсах, не выражающаяся в ухудшении производительности - это вообще несерьезно. Разницу между ситуациями "процессор 99% времени Idle" и "процессор 98% времени Idle" - можно, конечно, характеризовать как "Ужас-ужас, система стала жрать вдвое больше ресурсов!" , но имхо не очень осмысленно ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2015, 15:51 |
|
||
|
Проектирование БД для чата с комнатами
|
|||
|---|---|---|---|
|
#18+
IceJOKERПоявилось еще пару вопросов: 1. Как хранить сообщения, чтоб при удалении с одной стороны - они не удалялись у других участников беседы, т.е. человек общается , к примеру, тет-а-тет, решил очистить чат и чат очищается только у него, а не у собеседника временной меткой в dialog_users "показывать сообщения с этого момента". IceJOKER2. И как хранить ответы пользователей? Добавить столбец to_user в messages и заполнять его если пользователь отвечает или как? А Вы уверены что это нужно? Вы хотите как-то выделять ответы в диалоге/комнате? скайп никак выделяет афаир. Если нужно - я бы сделал в message ссылку ID_prev_message. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2015, 15:58 |
|
||
|
Проектирование БД для чата с комнатами
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинIceJOKERПоявилось еще пару вопросов: 1. Как хранить сообщения, чтоб при удалении с одной стороны - они не удалялись у других участников беседы, т.е. человек общается , к примеру, тет-а-тет, решил очистить чат и чат очищается только у него, а не у собеседника временной меткой в dialog_users "показывать сообщения с этого момента". IceJOKER2. И как хранить ответы пользователей? Добавить столбец to_user в messages и заполнять его если пользователь отвечает или как? А Вы уверены что это нужно? Вы хотите как-то выделять ответы в диалоге/комнате? скайп никак выделяет афаир. Если нужно - я бы сделал в message ссылку ID_prev_message. 1. О , отличный вариант, спасибо. Первое, что мне пришло в голову - это дублирование сообщений(не пинайте, не пинайте, т.к. это 1-ое, что пришло в голову). 2. Тоже думал нужно или нет....и на всякий смотрел. Лучше уж сделаю старый добрый ответ - "%username, % ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2015, 16:05 |
|
||
|
Проектирование БД для чата с комнатами
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинПотребность системы в ресурсах, не выражающаяся в ухудшении производительности - это вообще несерьезно. Разницу между ситуациями "процессор 99% времени Idle" и "процессор 98% времени Idle" - можно, конечно, характеризовать как "Ужас-ужас, система стала жрать вдвое больше ресурсов!" , но имхо не очень осмысленно ;) Зато очень осмысленна разница между "нужен отдельный сервер, и диски не SATA" и "да можно впихнуть куда угодно, на загрузку почти не влияет". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2015, 17:01 |
|
||
|
Проектирование БД для чата с комнатами
|
|||
|---|---|---|---|
|
#18+
softwarerКот МатроскинПотребность системы в ресурсах, не выражающаяся в ухудшении производительности - это вообще несерьезно. Разницу между ситуациями "процессор 99% времени Idle" и "процессор 98% времени Idle" - можно, конечно, характеризовать как "Ужас-ужас, система стала жрать вдвое больше ресурсов!" , но имхо не очень осмысленно ;) Зато очень осмысленна разница между "нужен отдельный сервер, и диски не SATA" и "да можно впихнуть куда угодно, на загрузку почти не влияет". Тоже, в общем-то, нет. Это осмысленно в ситуации "10 серверов в датацентре, 20 разных проектов и надо их комбинировать". А если у Вас 1 сервер и 1 проект, не потребляющий и 10% мощности сервера - для чего Вам высвобождать ресурсы? Почему-то среди IT-специалистов популярна "оптимизация ресурсов на всякий случай". Имхо это [еще] менее осмысленно, чем "гибкость и расширяемость на всякий случай" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2015, 08:50 |
|
||
|
|

start [/forum/topic.php?fid=32&gotonew=1&tid=1540500]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
172ms |
get topic data: |
10ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 513ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...