Уведомление и PHP + MySQL дизайн

Я создаю сайт, на котором есть сообщения и система ответов.

Я бы хотел, чтобы кто-то ответил, отправив уведомление тем, кто когда-либо отвечал (или участвовал) в почте.

Моя мысль состоит в том, чтобы создать таблицу с именем Notification , содержащую message и seen (увиденное / непрочитанное) поле. Как только люди ответят, INSERT запишитесь в таблицу Notification .

Это кажется простым и интуитивным, но, если есть много людей, вовлеченных в, например, 31-й пользователь отвечает, 30 человек, которые когда-либо отвечали, получат уведомление. Это сделает 30 строк записей SQL. И 32-й пользователь сделает 31 запись. Тогда общее количество строк станет 30+31=61 .

Мой вопрос:

  1. Это хороший способ обработки системы уведомлений?
  2. Если да, то как обращаться с дублирующимся уведомлением (не видели, но получили новый ответ)
  3. Как и выше, это сделает огромную нагрузку на сервер?

Огромное спасибо.

Related of "Уведомление и PHP + MySQL дизайн"

Я создал подобную систему. Вот мой опыт:

  1. Моя таблица уведомлений выглядит так: id (int) | user_id (int) | post_id (int) | last_visited (datetime).

  2. user_id + post_id – уникальный составной индекс .

  3. Поэтому, когда пользователь открывает страницу, я ищу запись (user_id + post_id) в базе данных. Если я найду его, то обновляю поле last_visited, если не найду, а затем создаю новую строку.

  4. Когда мне нужны сообщения списка для уведомления, я просто запрашиваю все сообщения, созданные после last_visited time.

  5. Также у меня есть cron sript, что чистое уведомление для закрытых сообщений или запрещенных пользователей.

Что касается ваших вопросов:

1 и 2: вам нужно найти баланс между объемом данных, которые будут храниться, и производительностью сайта. Если вам не нужно хранить все эти данные, вы можете следовать моему пути. Если эти данные необходимы, ваш путь лучше.

3: Это зависит от количества посетителей и других функций. Но вот несколько советов. Вы должны использовать индексы для таблицы MySql для лучшей производительности. Также вы должны подумать о cron-скрипте, который удалит ненужные уведомления. Если у вас есть огромное количество посетителей более 700 тыс. В день, вы думаете, что MogoDb или другая высокопроизводительная база данных noSql .