внутрення почта

TheWall

Новичок
Здравствуйте!
пишу модуль внутренней почты и есть очень надоевший вопрос.

есть табличка `message`

--
-- Структура таблицы `message`
--

`id` int(255) - ID сообщения
`from` int(255) - ID отправителя
`to` - ID получателя
`time` varchar(25) - время в секундах
`text` text - текст сообщения
`status` int(1) - статус сообшения прочитано/нет
`index` varchar(255) - уникальный индекс диалога

так вот как бы одним запросом к MYSQL выбрать сообщения и построить список диалогов на подобии вконтакте

GROUP BY `index` выводит первое сообщение в диалоге и никакие ORDER BY не помогают
 

Вурдалак

Продвинутый новичок
Нет никаких причин полагать, что в Контакте используют такую же структуру таблиц и такой подход в целом. Как минимум, удобнее сделать следующие таблицы:
  • messages { id, conversation_id, datetime, text }
  • conversations { id, title, datetime }
  • user_message { user_id, message_id }
  • user_conversations { user_id, conversation_id }
(и это позволит иметь несколько участников в одной переписке, кстати).
Я бы хранил последний id сообщения в таблице conversations, потом выборка будет простая.
 

TheWall

Новичок
дело в том что уже все готово, имею ввиду сама переписка, остался только вывод диалогов. как-то не очень хочется все переделывать.
 

Вурдалак

Продвинутый новичок
Ты можешь создать ту же таблицу conversations {id, last_message_id}, где id == index и поддерживать её (обновлять last_message_id).
 
Сверху