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

Мои новости
Сообщения
Istsam

Всем привет
Я думаю, практически все знакомы с модулем Вконтакте "Мои новости".
Нужно подсказать структуру/архитектуру бд Mysql, для организации подобного.
Работа ведётся через pdo($db)
Имеется таблица в бд "warn"
id/user_id/title/text/time/read
В неё записывается, если прислал кто то сообщение личное, кинул заявку в друзья или оставил сообщение на стене.
Но это немного другой модуль "Уведомления".
В общем, жду ссылок на статьи или же подсказок в организации.
добавлено спустя 13 часов 12 минут:
ребята

03 Мар 2012, 9:05
Framework

Выработай требования
и работай, все просто

Пробуй разные варианты, ну а что - опыт он и в Африке опыт

03 Мар 2012, 15:36
Istsam

Framework, ожидал боле внятных советов

04 Мар 2012, 21:38
mixlion

Ну ты ведь всё правильно сам написал.
Только поле read наверно не надо, хотя не знаю твою ситуацию.
Лучше сделать в таблице с пользователями поле last_view_news и туда записывать время последнего пребывания на 1 странице с новостями.
Я так понял `user_id` это ид пользователя, на стене которого оставили запись или подобное?
Если да то следует добавить еще поле author_id.
Потом что бы показать к-во новых новостей (уведомлений)
SELECT COUNT(*) FROM `warn` WHERE `user_id` = $user['id'] and `time` > $user['last_view_news']
А вывести тогда
SELECT * FROM `warn` WHERE `user_id` = $user['id'] ORDER BY `id` DESC LIMIT ...
И когда пользователь будет смотреть новости:
if($page == 1)
... UPDATE `users` SET `last_view_news` = UNIX_TIMESTAMP()

04 Мар 2012, 21:59
Signum

я так понял поле рид это 1,0, типа прочитал/не прочитал, нормальная система, при которой эти замуты со временем не нужны

04 Мар 2012, 22:28
mixlion

Signum, и тогда каждую запись нужно обновлять, а так только 1, и хранить намного меньше данных.

04 Мар 2012, 22:34
Signum

а тут так и не сэкономишь, ведь письмо например он мог увидеть, но не прочитать и так далее

04 Мар 2012, 22:40
mixlion

Signum, я думаю в полях read будет храниться увидел ли пользователь это уведомление или нет, а не прочитал ли он письмо. Если последнее то конечно лучше вариант с read (1,0)

04 Мар 2012, 22:42
Signum

ну я лично так понял)

04 Мар 2012, 22:44
Istsam

4, юзер ид - это тот кому пришло уведомление
добавлено спустя 2 минуты:
ребят. Мне бы архитектуру новой таблицы, что бы в нее новости записывать все. И потом делать определено новый модуль. Оповещения сами авто удаляются системой в течении недели. Нужна именно архитектура, чтобы выводить новости свои и иметь возможность просматривать чужие
добавлено спустя 1 минуту:
личное сообщение, например. Это не новость для друзей
добавлено спустя 1 минуту:
цель модуля оповещение, рассказать человеку, что случилось лично с его аккаунтом за то время пока его не было на сайте.

05 Мар 2012, 7:20
Ответить на тему