Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2011, 03:08   #1
dvuwka
Пользователь
 
Регистрация: 03.03.2011
Сообщений: 14
По умолчанию Как работают личные сообщения?

Меня очень интересует вопрос как работают личные сообщения на форумах.
А точнее как выглядит база данных где они хранятся?
Более подходящего раздела для темы не нашел.
dvuwka вне форума Ответить с цитированием
Старый 03.03.2011, 14:09   #2
KennyHack
Сумасшедший кодер
Пользователь
 
Аватар для KennyHack
 
Регистрация: 24.02.2011
Сообщений: 17
По умолчанию

База данных это файл где хранятся сообщения. Для каждого сообщения указан отправитель и кому оно адресовано.
KennyHack вне форума Ответить с цитированием
Старый 03.03.2011, 15:04   #3
dvuwka
Пользователь
 
Регистрация: 03.03.2011
Сообщений: 14
По умолчанию

Допустим таблица Message в ней поля mess_id, recipient, subj, text, status
поле status булевое, информация о статусе сообщения.
тоесть в одной таблице будут храниться все в сообщения всех пользователей, и при каждом запросе страницы надо пробежать по всем сообщениям и посчитать сколько у пользователя непрочитанных.
Мне кажется это накладно, и будет очень долго происходить.
Разве нет другого решения?
dvuwka вне форума Ответить с цитированием
Старый 03.03.2011, 15:58   #4
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Код:
SELECT `mess_id` WHERE `recipient`=id_отправителя AND `status`=FALSE
Количество полученных строк - количество непрочитанных сообщений.
В PHP количество строк дает функция:
Код:
$messages = (int)mysql_num_rows($queryResult);
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 03.03.2011, 16:17   #5
dvuwka
Пользователь
 
Регистрация: 03.03.2011
Сообщений: 14
По умолчанию

Спасибо, но это же и есть, то что я написал.
Более того мне не интересно как будет выглядеть код.
Как бы вы реализовали систему обмена сообщениями на сайте?
Как я предложил? или у вас есть более интересное решение?
dvuwka вне форума Ответить с цитированием
Старый 03.03.2011, 16:48   #6
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Я у себя реализовывал систему ЛС именно так. Да и в большинстве крупных CMS используется такая система. Я считаю, что это очень быстрое решение, если, конечно, обрабатывать таблицу в MySQL, а не на PHP. Другого решения не вижу, не держать же под каждого пользователя отдельную таблицу?
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 03.03.2011, 18:28   #7
dvuwka
Пользователь
 
Регистрация: 03.03.2011
Сообщений: 14
Хорошо

Цитата:
Сообщение от russian-stalker Посмотреть сообщение
не держать же под каждого пользователя отдельную таблицу?
Да именно такой ответ я и хотел получить!
Спасибо большое.
dvuwka вне форума Ответить с цитированием
Старый 03.03.2011, 18:31   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

dvuwka, Вы, наверное, не представляете себе, что такое СУБД...
При наличии индексов по тем полям, по которым строятся условия запроса
(в данном случае recipient_id и status) запрос на таблице с миллионами сообщений отработает за доли секунды!


Цитата:
Сообщение от dvuwka
Цитата:
Сообщение от russian-stalker
не держать же под каждого пользователя отдельную таблицу?
Да именно такой ответ я и хотел получить!
понятно. Т.е. были сомнения...


p.s. извините, что влез в тему... Похоже, что вопрос уже решён.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вконтакте Личные сообщения KWN, lnc Работа с сетью в Delphi 8 28.07.2014 20:17
как работают and or при пирсваивании?? maloun Общие вопросы Delphi 9 08.02.2011 16:58
Как работают программы обходящие NAT? Pedro Свободное общение 4 20.01.2010 17:20
Как отвечать на личные сообщения на форуме? Парсифаль О форуме и сайтах клуба 2 03.05.2009 23:58
Можно ли защитить алгоритмы программы как "личные права" ... Flex Свободное общение 3 28.09.2008 15:26