|
0 / 0 / 0
Регистрация: 25.09.2008
Сообщений: 5
|
|
алгоритм обмена сообщениями25.09.2008, 11:43. Показов 5742. Ответов 11
Метки нет (Все метки)
Здравствуйте
Помогите в алгоритме для следующей задачи Нужно реализовать обмен сообщениями между зарегистрированными пользователями на php+mysql. Получил совет создать таблицу msg(id, from_user_id, to_user_id, text, date, parent_msg) Но я думаю это будет занимать слишком много процессорного времени и ресурсов оперативной памяти даже для того чтобы сформировать список между какими пользователями происходил диалог. Может есть способы пооптимизированнее? Заранее спасибо
0
|
|
| 25.09.2008, 11:43 | |
|
Ответы с готовыми решениями:
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
|
|
|
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
|
|
|
26 / 18 / 1
Регистрация: 05.02.2011
Сообщений: 55
|
||
| 06.02.2011, 21:28 | ||
|
Так сделали?
0
|
||
|
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 | ||
|
0
|
||
|
39 / 39 / 5
Регистрация: 06.02.2011
Сообщений: 123
|
|
| 07.02.2011, 00:22 | |
|
Поэтому-то так сложно) Надо так, чтоб если один удалит сообщение, то у второго оно останется, а не пропадет
0
|
|
|
26 / 18 / 1
Регистрация: 05.02.2011
Сообщений: 55
|
||
| 07.02.2011, 04:29 | ||
|
Мне кажется этот вариант самый оптимальный, не вижу смысла создавать 2 записи на одно сообщение, пусть в варианте который я озвучил и на 1 запрос больше будет, но БД не будет так сильно разрастаться.
0
|
||
|
126 / 93 / 18
Регистрация: 09.01.2011
Сообщений: 467
|
||||
| 07.02.2011, 08:28 | ||||
|
0
|
||||
|
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
|
|
| 07.02.2011, 16:33 | |
|
Помогаю со студенческими работами здесь
12
Система обмена сообщениями Система обмена сообщениями Реализовать механизм обмена сообщениями. Приложение для обмена сообщениями Создание севрера обмена сообщениями Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|