2010-01-31 4 views
0

В настоящее время у нас есть опция сообщения на нашем сайте, которая отображает любое сообщение, которое мы добавляем через CMS, чтобы войти в систему, но какой был бы лучший способ предложить опцию 'hide'? Таким образом, если этот конкретный пользователь не хочет видеть сообщение снова, он может скрыть его? Любые предложения приветствуются ...Скрытие сообщений для зарегистрированных пользователей?

+2

В зависимости от того, какие сообщения они есть. Одноразовые сообщения о состоянии? Долгосрочные намеки? –

+0

В любой момент может быть несколько сообщений, это может быть информация об обновлении системы или общие новые дополнения ... почти все идет ... – jimbo

ответ

3

Предполагая, что эти уведомления/обновления, пользователи должны прочитать, попробовать что-то вроде этого:

  • При входе в систему, чтобы пользователь знал, что они имеют N новые сообщения, чтобы читать.
  • Если пользователь перешел на страницу сообщений для чтения этих сообщений, обновите дату с текущим временем в столбце last_read_date в метаданных своих пользователей.

Теперь, чтобы решить, какие сообщения должны отображаться при заданном входе в систему, просто отметьте столбец last_read_date против даты каждого сообщения. Если дата сообщения будет в будущем относительно last_read_date, они еще не видели это сообщение.

+0

Я думаю, что это лучшее решение, но только очень хорошо, если пользователь имеет одно сообщение, отображаемое в любой момент времени. Может быть проблемой, если они не вошли в систему какое-то время, и два сообщения/уведомления отображаются вместе, пользователь может щелкнуть, чтобы скрыть новейшие (которые будут сверху), а одно из них также будет скрыто, но, как и общее мышление. – jimbo

0

Предполагая, что вы показываете только одно сообщение за раз, вы можете добавить логический столбец в таблицу ваших пользователей и установить его true, когда пользователь нажимает кнопку hide, а затем проверьте этот столбец перед отображением уведомления ,

Затем каждый раз, когда вы делаете новое уведомление, вы можете сбросить столбец до значения false для каждого пользователя.

0

следует добавить таблицу в БД, которая будет связывать между пользователями таблицы и сообщений таблицы

с полями:

идентификатору пользователя, MessageID, статус

теперь, когда вы вошли в систему пользователя, просто сделать

select * from messages where status='new' and userid='[userid_here]' 

когда пользователь reades, что сообщение, которое вы просто изменить строку состояния на что-то другое как «старый»

таким образом вы можете показывать только те сообщения, которые пользователь не читал.

+0

Это будет работать и обладает максимальной гибкостью. Но он ужасно масштабируется: количество записей в этой таблице будет количеством пользователей, умножающих количество сообщений. – Wim

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