Как вы обрабатываете всплывающее окно с уведомлением пользователя - похоже на SO? - PullRequest
0 голосов
/ 15 июля 2010

В моем приложении asp.net MVC я планирую систему уведомлений пользователей, аналогичную SO. Вот структура таблицы, о которой я думаю:

Message table
--------------------------------
PK  MsgId     BigInt
FK  UserId    UniqueIdentifier
    Body      nvarchar(200)
    IsRead    TinyInt
    DateSent  DateTime

Во-первых, эта структура БД выглядит нормально? есть ли лучший способ?

Лента вверху покажет, что у пользователя есть непрочитанные сообщения. Сообщение автоматически становится прочитанным, когда пользователь посещает страницу этого сообщения (не нужно нажимать кнопку «пометить как прочитанное». [ меняет поле IsRead на 1 ]

Создать ленту так, чтобы она всегда была видна при непрочитанном сообщении, легко. Как создать его, чтобы позволить пользователю скрыть ленту , даже если у него есть непрочитанные сообщения, и НЕ загружать ленту на следующей внутренней странице, которую посещает пользователь?

Ответы [ 2 ]

2 голосов
/ 15 июля 2010

Я бы добавил флаг, похожий на «IsAcknowledged», чтобы вы могли показывать ленту, только если !IsRead && !IsAcknowledged, тогда используйте AJAX для обновления флага, когда пользователь нажимает «x» или что-то еще. таким образом поддерживается флаг IsRead, поэтому, когда пользователь выбирает просмотреть свои сообщения, вы все равно знаете, какие из них еще не прочитаны.

также не знаю, какую СУБД вы используете, но для логических полей в MSSQL мне нравится использовать тип bit.

1 голос
/ 15 июля 2010

Есть много плагинов jquery, которые позволяют вам иметь эту прекрасную анимированную панель уведомлений, например jGrowl и jBar .Просто выберите один из них, попробуйте его, и если у вас возникнут проблемы с его реализацией, не стесняйтесь спрашивать.

...