0 / 0 / 0
Регистрация: 25.09.2008
Сообщений: 5

алгоритм обмена сообщениями

25.09.2008, 11:43. Показов 5817. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте
Помогите в алгоритме для следующей задачи
Нужно реализовать обмен сообщениями между зарегистрированными пользователями на php+mysql.
Получил совет создать таблицу msg(id, from_user_id, to_user_id, text, date, parent_msg)
Но я думаю это будет занимать слишком много процессорного времени и ресурсов оперативной памяти даже для того чтобы сформировать список между какими пользователями происходил диалог. Может есть способы пооптимизированнее?
Заранее спасибо
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.09.2008, 11:43
Ответы с готовыми решениями:

Скрипт обмена сообщениями
Всем привет)никак не могу найти урок или скрипт для реализации обмена сообщениями на сайте, как например вконтакте или facebook. Кто...

Решение для обмена сообщениями внутри сайта
Доброго времени суток. Требуется найти решение для организации обмена сообщениями между пользователями сайта (должно иметь API для...

Обмен личными сообщениями
кто может подкинуть код обмена личными сообщениями между пользователями

11
Гость-1000
25.09.2008, 14:34
Тебе типа чата нужно? или как форум, чтобы это работало?(я имею ввиду скорость обмена сообщениями у пользователей) всё зависит от колличества пользователей, и частоты написания сообщений...
на колличествах пользователей до 100, я думаю что таблица которую тебе посоветовали будет оптимальным вариантом(можно ещё XML документ использовать, с теми же полями, он при небольшом кол-ве сообщений будет меньше чем БД кушать), по соотношению сложность/эффективность... даже если обмен сообщениям идёт на скорости чата (только надо будет чистить эту таблицу периодически, определить время хранения сообщения, чтобы она не расползалась до слишком больших значений...)
0 / 0 / 0
Регистрация: 25.09.2008
Сообщений: 5
26.09.2008, 11:34  [ТС]
подскажите как запрос
"select to_user_id from msg where from_user_id=5;" сделать таким чтобы он выбирал строки с уникальным to_user_id
0
 Аватар для iPIPka
39 / 39 / 5
Регистрация: 06.02.2011
Сообщений: 123
06.02.2011, 21:19
SELECT DISTINCT to_user_id FROM msg WHERE from_user_id=5;
это имелось в виду?
А у меня вопрос есть
Т. к. одно сообщение относится к 2 пользователям (у одного - исходящее, у другого - входящее), то как реализовать удаление?

Добавлено через 31 минуту
Все, разобралась, вопрос отменяется :-)
0
 Аватар для evgentus
26 / 18 / 1
Регистрация: 05.02.2011
Сообщений: 55
06.02.2011, 21:28
Цитата Сообщение от iPIPka Посмотреть сообщение
SELECT DISTINCT to_user_id FROM msg WHERE from_user_id=5;
это имелось в виду?
А у меня вопрос есть
Т. к. одно сообщение относится к 2 пользователям (у одного - исходящее, у другого - входящее), то как реализовать удаление?

Добавлено через 31 минуту
Все, разобралась, вопрос отменяется :-)
Внести еще 2 поля что то типа delete_from и delete_to, и если пользователь удаляет у себя сообщение допустим из входящих проверять не удалил ли другой юзер у себя это сообщение из исходящих(если удалил delete_from будет 0)... И в зависимости удалил или нет, либо ставить значение 0, или удалять запись.
Так сделали?
0
 Аватар для iPIPka
39 / 39 / 5
Регистрация: 06.02.2011
Сообщений: 123
06.02.2011, 21:44
Ага, так! Спасибо.
Вот думаю только, наверное триггер надо написать. Только вот не знаю какой.
Видимо, AFTER UPDATE, но насколько это рационально, сначала обновить запись, а потом удалить ее?
0
126 / 93 / 18
Регистрация: 09.01.2011
Сообщений: 467
07.02.2011, 00:14
Цитата Сообщение от evgentus Посмотреть сообщение
Внести еще 2 поля что то типа delete_from и delete_to, и если пользователь удаляет у себя сообщение допустим из входящих проверять не удалил ли другой юзер у себя это сообщение из исходящих(если удалил delete_from будет 0)... И в зависимости удалил или нет, либо ставить значение 0, или удалять запись.
Так сделали?
зачем же так сложно? По идее, если один удалит сообщение, то в ьд его не будет, а значит и у другого пользователя оно "удалится"
0
 Аватар для iPIPka
39 / 39 / 5
Регистрация: 06.02.2011
Сообщений: 123
07.02.2011, 00:22
Поэтому-то так сложно) Надо так, чтоб если один удалит сообщение, то у второго оно останется, а не пропадет
0
 Аватар для evgentus
26 / 18 / 1
Регистрация: 05.02.2011
Сообщений: 55
07.02.2011, 04:29
Цитата Сообщение от Dellok Посмотреть сообщение
зачем же так сложно? По идее, если один удалит сообщение, то в ьд его не будет, а значит и у другого пользователя оно "удалится"
Предложите свой вариант реализации ЛС.
Мне кажется этот вариант самый оптимальный, не вижу смысла создавать 2 записи на одно сообщение, пусть в варианте который я озвучил и на 1 запрос больше будет, но БД не будет так сильно разрастаться.
0
126 / 93 / 18
Регистрация: 09.01.2011
Сообщений: 467
07.02.2011, 08:28
Цитата Сообщение от iPIPka Посмотреть сообщение
Поэтому-то так сложно) Надо так, чтоб если один удалит сообщение, то у второго оно останется, а не пропадет
Цитата Сообщение от evgentus Посмотреть сообщение
Мне кажется этот вариант самый оптимальный, не вижу смысла создавать 2 записи на одно сообщение, пусть в варианте который я озвучил и на 1 запрос больше будет, но БД не будет так сильно разрастаться.
Прошу прощения, не правильно понял вопрос.
Цитата Сообщение от evgentus Посмотреть сообщение
Предложите свой вариант реализации ЛС.
Сейчас находу придумал такой вариант: добавить не 2, а 1 поле, в котором через маркер держать ID получателя и отправителя. Когда один из пользователей удалил письмо, то убирать этот ид из этого поля. Так, имхо, будет лучше, если получатель будет не 1, а несколько.
0
 Аватар для evgentus
26 / 18 / 1
Регистрация: 05.02.2011
Сообщений: 55
07.02.2011, 08:52
Ну в принципе можно так попробовать... Но не получится использовать это для нескольких получателей, объясню...
В том варианте который я предложил, выборка писем происходит скажем по полю inbox и outbox, т.е. в первом хранится id получателя, во втором отправителя, в БД соответственно созданы индексы для этих полей, выборка будет происходить мгновенно, а для нескольких получателей нужно будет хранить например так "1:2:3:4" плохой вариант, ИМХО.
Да и для чего обычному юзеру потребуется отправлять массово письма?! Спамерам и администрации, имхо, письма и от тех и от других юзер сразу удаляет, если конечно он заглядывает в учетку.
Вот так я это всё вижу...

Добавлено через 12 минут
Щас посплю и в своем блоге статью напишу про реализацию ЛС, в своем видении....
0
126 / 93 / 18
Регистрация: 09.01.2011
Сообщений: 467
07.02.2011, 16:33
evgentus, для каких целей это должно использоваться, меня не интересует. Я просто помогаю с реализацией.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.02.2011, 16:33
Помогаю со студенческими работами здесь

Система обмена сообщениями
Здраствуйте форумчане! И так мне надо написать клиент-серверное сетевое приложение реализующее функционал системы обмена сообщениями...

Система обмена сообщениями
Есть ли какая-нибудь система обмена мообщениями, которая одновременно реализует паттерны "remote procedure call" и...

Реализовать механизм обмена сообщениями.
Привет Всем! Не могли бы мне помочь в следующей задачи!? 1)Задание: Делегаты и события. Реализовать механизм обмена сообщениями....

Приложение для обмена сообщениями
Здравствуйте. Необходимо написать приложение для обмена сообщениями. Я так понимаю, это должен быть чат. Но возникло несколько вопросов: ...

Создание севрера обмена сообщениями
Здравствуйте Хочу создать сервер для обмена текстовыми сообщениями, нарыл в msdn код сервера и клиента. Но они работают в разные стороны,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru