Всем Привет! вообщем ломаю голову как создать новостную ленту событий и страницу пользователя. копирую как в ВК.
сперва думал сделать так, создать таблицу где буду хранить события юзера, добавил он фото или видео. репостнул там что то. Записывать ID юзера, тип события и ID события ну и время события. Потом столкнулся с тем как я буду выводить эти самые события саму инфу на страницу юзера. джоины не подходят, они злые. да и потом у событий разная инфа по ячейкам.
на сервере стоит MySql. еще как то надо будет с фотками решать вопрос там как то группировать по времени в одно события скажем за последний час.
поделитесь опытом кто чем сможет.
может уже есть кто реализовал такое.
планирую еще memcached поставить. правда пока не научился с ним работать)
юзер щелкает написать сообщение там я ищу в диалогах есть ли открытый диалог между ними (возможно когда то уже переписывались и удалили историю сообщений) и возвращаю ID диалога либо нового только что созданного либо старого. создаю канал прослушки данного диалога по ID между пользователями.
встречал схему диалогов, но только между двумя пользователями. а мне нужно реализовать и групповой чат 3,4 и т.п.
в итоге схема диалогов имеет только два поля ID и users где сохраняю участников данного диалога. кроме как сохранять их через запятую ничего не придумал.
схема сообщений хранит кто отправил сообщение в каком диалоге.
при отправке сообщения сохраняю в базе после отправляю в ID диалога, где те кто в сети уже подписаны на этот диалог получают его.
вообще это выглядит как в ВК переписка принцип тот же.
Я прекрасно понимаю что все это далеко не идеально, поэтому и обращаюсь на форум.
Мелкий извиняюсь, я не профи. данный запрос нашел в просторах и добавил свое.
ID диалогов я получаю за ранее вывожу список диалогов юзеру в которых он участвует почему отдельно?!
дело в том что планирую делать групповой чат и поэтому я храню в диалоге юзеров через запятую те кто общается в этом диалоге. чтоб потом просто сокету указать отправляем этому диалогу а там уже всем кто подписан на этот диалог.
мне нужно просто вывести список диалогов в котором участвует юзер с последним сообщением в этом диалоге
Мелкий предлагаете после каждого сообщение обновлять запись диалога?
соединений многовато будет записать сообщение и обновить запись диалога. не вариант. проще так оставить как есть. можно еще сократить запрос убрав запрос к диалогам. список все равно получаю намного раньше.
SELECT dialog.id, dialog.users, msg.id, msg.sey_to, msg.msg, msg.STATUS, msg.date FROM dialog, msg WHERE dialog.id IN(SELECT dialog_id FROM msg)AND dialog.id=msg.dialog_id AND dialog.id IN($dialogs)ORDERBY msg.date DESC
т.е. сперва выводит последнее сообщение диалога 1 потом 5,8,5,8,1 учитывая последнее сообщение по времени.
Помогите составить запрос чтоб он выводил по одному последнему, а не все сообщения диалогов. пробовал ставить LIMIT 1 тут (SELECT dialog_id FROM msg) вывода нет.