2012-03-23 4 views
2

Я видел много различных сообщений о SO относительно систем уведомлений для пользователей (например, комментарии пользователей на картинке, отправление сообщения и т. Д.).Системные уведомления для пользователей с PHP/MySQL

Мне любопытно, как собрать «системные уведомления», которые будут созданы администратором веб-сайта. Это могут быть сообщения, которые отображаются на каждый пользователя при входе в систему, такие как:

1) Напоминания для обслуживания системы/простоем 2) Уведомление о предстоящих изменениях 3) любых других сообщений, которые должны отображаться системы- широкий

Что такое хороший способ сделать это? Я бы хотел, чтобы эти сообщения отображались для всех пользователей, и у пользователей была бы возможность «спрятать» (таким образом, маркировать его как «читать»), чтобы он не отображался снова, когда они вошли позже. Это что-то, что нужно делать на стороне базы данных, с сеансами или с обоими?

Любые идеи о том, как это начать, были бы очень признательны!

+0

Добавить таблицу уведомлений с m: n для пользователей и столбец чтения (tinyint 0 или 1), показать его в вашем шаблоне, если read равно 0 и обновить строку до 1 при щелчке. Наверное, я не упускаю вопрос! – Sgoettschkes

ответ

2

У меня была бы таблица уведомлений, состоящая из msgID, message, creationTime, expirationTime. Затем таблица пользователей, такая как userNotifications, которая будет состоять из userID, msgID.

Когда они, пользователь, отмечают сообщение как отклоненное, добавьте идентификатор msg в userNotifications. Это позволяет создавать запросы для всех уведомлений, которые не истекли, а также не были уволены пользователем.

+0

Или вы можете создать файл cookie, содержащий логическое значение с идентификатором сообщения, и если пользователь спрятал его; прочитайте его с помощью PHP, и если он установлен, не генерируйте уведомление на странице. –

+2

@scjosh, и если он запишет дома, в школе, на работе, в аэропорту, в mcdonald, он все равно получит уведомление и его раздражает ... mysql - это путь. –

Смежные вопросы