Xwab
Форумыnavigate_nextПрограммирование на PHP

Структура для ленты.(и для 'обсуждений')
Сообщения
IceJOKER

Никак не могу придумать самый оптимальный вариант структуры таблицы для ленты(там будут записываться действия пользователей:Кто-то что-то добавил на форуме, кто-то что изменил в анкете и т.д.).

И еще структуру таблицы для обсуждений(как в одноклассниках), т.е.Я добавил комментарий к какому то файлу, после меня кто-то еще (тогда у меня должно появится +1 , когда перехожу в этот раздел то счетчик обновляется, либо кто-то написал в моей теме на форуме и т.д.), думаю суть понятна.

26 Май 2012, 18:48
mazaHELL

я бы зделал через enum(guest, forum, photo, file, anketa)
Добавил бы поля, ид - темы/юзера/фотки/гостевой

Ид юзера, кому отображать ленту, дату последнего обновления, счетчик и прочие фишки. Конкретно надо смотреть по ситуации и скрипту

26 Май 2012, 19:53
Akdmeh

2, не лучший вариант.
Лучше брать таблицу событий и пользователя или группу, который это событие создал.
А затем уже берем запросом "взять все события, которые созданы теми, кто в списке моих друзей".
Пример. Есть таблица friends и таблица events.
тогда запрос для меня будет:
select * from events where id_user in(select * from friends where id=$my_id);
Я не помню, может ошибся в синтексисе in (не часто юзаю вложенные запросы, уж извините), но мне кажется так более оптимально, чем создавать кучу дублированных новостей для всех пользователей.

Думаю, такая система в большинстве сайтов, более сложно конечно, тем не менее.

26 Май 2012, 19:58
mazaHELL

акдмех) я ж писал, смотреть надо по ситуации))

26 Май 2012, 20:01
Akdmeh

4, последнее не заметил

26 Май 2012, 20:09
IceJOKER

У меня лента пока по такой системе работает, при каждой действий пользователю отправляется сообщение от системы такого содержания:
Действие(текст сообщения с использованием бб кодов(для вставки урл и т.д.)), кто совершил действие и место действия(не стал юзать еnum, ибо в каждый раз пришлось бы его дописывать при добавлении нового раздела на сайт, а просто varchar , куда записывается раздел "Форум|Анкета" и т.д.)

26 Май 2012, 20:20
Ответить на тему