Я разрабатываю систему новостей, используя PHP/MySQL, похожую на facebook.PHP News Feed Database & Design
Я задал аналогичный вопрос раньше, но теперь я изменил дизайн, и я ищу обратную связь.
Пример новости:
прокомментировал Пользователь A на Пользователь B «s новый альбом .
"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's new %r. SomeTimestamp
2644 B %a added a new %r to [his/her] profile. SomeTimestamp
% а = с user_id из человек делает действие
% г = принимающий объект
% о = владелец принимающего объекта (например, владелец альбома) (NULL, если% г является пользователем)
Вопросы:
Является ли это умный (эффективный/масштабируемый) способ двигаться вперед?
Как я могу сохранить «Предварительный просмотр события»? Например, если я хочу показать комментарий, который User_A сделал для User_B (например, выше и на ленте новостей facebook). Я рассмотрел использование закодированной копии только соответствующих данных .. например, JSON, кодирующий текст комментария или фото html .. но это кажется хрупким (пользователь может удалить фотографию, пока она еще находится в другом канале пользователя)
Как я могу показать такие сообщения, как: «Пользователь_B добавил 4 новых фотографии в свой профиль ». с эскизами фотографий?
Спасибо, я начинаю исследовать NoSql на основе ваших предложений. Есть ли статья или другой ресурс, который может оказаться полезным для понимания/реализации такой стратегии? Кроме того, мне нужно будет реструктурировать существующую реляционную базу данных для поиска NoSql? – pws5068
У меня есть несколько закладок на http://delicious.com/yerfatma/nosql - последний в списке утверждает, что это «NoSQL Required Reading». База данных и магазин nosql - это две разные вещи. Им совсем не нужно знать друг о друге. Идея заключается в том, что вы получаете данные из базы данных в кратчайшие сроки; после того, как у вас есть данные в PHP-коде, кешируйте его в магазине nosql, чтобы вы могли вернуть его туда, пока он не станет недействительным. – Tom
Теперь это намного яснее, я продолжу свое исследование. спасибо за помощь – pws5068