Я разрабатываю систему новостей, используя PHP/MySQL, похожую на facebook.
Я задал аналогичный вопрос раньше, но теперь я изменил дизайн и ищу обратной связи.
Пример новостей:
User_A прокомментировал User_B новый альбом.
"Hey man nice pictures!"
Пользователь_B добавил новый профиль Фото в [свой] .
[show photo thumbnail]
Первоначально я реализовал это с использованием избыточных столбцов для Obj1: Type1 | Obj2: Type2 | и т.д..
Теперь дизайн настраивается с использованием нескольких специальных ключевых слов и отношений с актерами/получателями. Моя база данных использует таблицу сообщений, соединенную с таблицей, содержащей идентификаторы пользователя, actionid, receiverid, receiverObjectTypeID,
Здесь сжатая версия того, как она будет выглядеть, когда-то соединялась:
News_ID | User_ID | Message | Timestamp
2643 A %a commented on %o new %r. SomeTimestamp
2644 B %a added a new %r to [his/her] profile. SomeTimestamp
% a = User_ID человека, выполняющего действие
% r = принимающий объект
% o = владелец получающего объекта (например, владелец альбома) (NULL, если% r является пользователем)
Вопросы:
-
Является ли это умным (эффективным/масштабируемым) способом продвижения вперед?
-
Как я могу сохранить "Предварительный просмотр события"? Например, если я хочу показать комментарий, который User_A сделал для User_B (например, выше, и на ленте новостей facebook). Я рассмотрел использование закодированной копии только соответствующих данных. Например, JSON кодирует текст комментария или фотографию html.. но это кажется хрупким (пользователь может удалить фотографию, пока она еще находится в другом канале пользователя).
-
Как я могу показать такие сообщения, как: "Пользователь_B добавил 4 новых фотографии в свой profile. "с эскизами фотографий?