У меня есть сайт социальной сети, где пользователи обновляют свое настроение, профили и добавляют фотографии.
В настоящее время я регистрирую все обновления в таблице с именем "update_log" со следующей структурой:
update_id int (auto),
userid int,
update_type int (1=profile, 2=photo, 3=mood)
pictureid int
mood_a int
mood_b int
mood_c int
update_time int
Запись обновления профиля:
(авто), 1, 1, 0, 0, 0, 0, 1239003781
Запись обновления фотографии:
(авто), 1, 2, 11544, 0, 0, 0, 1239003781
Запись обновления настроения:
(авто), 1, 3, 0, 1, 490, 70, 1239003781
Для записи фотографий есть соответствующая таблица userphotos, в которой содержатся заголовок и имя файла / данные о местоположении
Для настроений есть таблица поиска настроения, в которой содержатся описания настроения (т. Е. Я ленивый = \)
Что мне нужно сделать, так это запросить эти данные, чтобы показать их на странице профиля пользователя. Он покажет этот канал для любого из их любимых пользователей за последние x часов активности.
Проблема, с которой я сталкиваюсь, заключается в том, что если пользователь загружает пять фотографий в течение получаса или чего-то еще, я просто хочу, чтобы это была одна строка в ленте, а не запись для каждой загрузки фотографий.
То же самое касается обновлений профиля.
Мне нужно запросить данные, чтобы пользователь увидел что-то вроде этого:
Пользователь x обновил свое настроение! (Я устал) 4 апреля 2009 г., 22:35
Пользователь y загрузил x новых фотографий 4 апреля 2009 г. 22:20
Пользователь x обновил свой профиль 4 апреля 2009 г. 10:15
Как сгруппировать обновления фотографий в одну запись, возвращаемую в запросе, основываясь на всех записях, скажем, в часе друг от друга?
Есть ли способ сделать это одним запросом?
Спасибо!