Дизайн базы данных для внутренних сообщений (например, сообщение на Facebook) - PullRequest
4 голосов
/ 15 мая 2011

В следующем дизайне базы данных как пометить непрочитанное сообщение, чтобы мы знали, кто прочитал сообщение, как отправителя, так и получателя?

(т. Е. Когда человек X отправляет сообщение человеку Y, сообщение будет помечено как непрочитанное для человека Y до тех пор, пока человек Y не прочитает сообщение, но оно будет помечено как прочитанное для человека X, потому что он отправил сообщение).

СООБЩЕНИЕ

  • Id (PK)
  • Тема
  • Содержимое
  • MessageTypeId (FK)- Сообщение, Обновление (глобальное правление), уведомления и т. Д.
  • UserId (FK) - создатель
  • CreateDate
  • ReadDate

MESSAGE_COMMENT

  • Id (PK)
  • MessageId (FK)
  • Содержимое
  • UserId (FK) - создатель
  • CreatedDate

USER

  • Имя
  • Фамилия
  • Имя пользователя
  • Пароль
  • IsActive
  • и т. Д. И т. Д. ...

MESSAGE_TYPE

  • Идентификатор
  • Код
  • Имя

РЕДАКТИРОВАТЬ: кажется, что дизайн не завершен.

1 Ответ

1 голос
/ 15 мая 2011

Вы можете добавить таблицу Read, которая связывает идентификатор пользователя и идентификатор сообщения.При создании сообщения приложение автоматически вводит идентификатор пользователя и идентификатор сообщения.Затем, когда получатель читает сообщение, он записывает ReceiverID и MessageId.

Таким образом, пока нет записей для ReceiverID и MessageID, сообщение будет выглядеть непрочитанным для получателя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...