Я строю сайт социальной сети на PHP / MySQL / jQuery. Когда пользователь заходит на мой сайт, я хотел бы запросить БД и получить объявление администратора, если таковое существует. Это будет окно сообщения, которое будет отображаться на странице для всех пользователей, но у него будет X , чтобы щелкнуть по нему и больше не показывать, пока администратор не опубликует новое объявление. Так что, если вы никогда не нажимаете X и в db есть сообщения объявлений, он всегда будет показывать это окно сообщений на вашей странице, однако, если вы нажали X, чтобы закрыть окно, то вы вернетесь на страницу, на которой он будет не быть там, если не будет опубликовано новое сообщение администратора.
Я знаю, что есть несколько способов сделать это, но я ищу наиболее эффективный способ.
У меня есть одна идея: если я добавлю дополнительное поле mysql в таблицу пользователя «admin_message» и пометю его как 0, то при публикации нового сообщения администратора будет изменена запись для каждого пользователя на 1, если сообщение администратора устанавливается на 1, то это отображается на странице пользователя. Затем, когда пользователь щелкает X, чтобы скрыть поле, он обновляет строку таблицы пользователя и возвращает значение обратно в 0.
Еще одна идея, которая у меня есть, - использовать cookie-файлы, чтобы проверить, выбрал ли пользователь скрыть сообщение, я думаю, что это будет быстрее, но, возможно, не так хорошо, поскольку пользователь может войти в систему с разных компьютеров, и если отображается новое сообщение , они могут не увидеть это сразу.
Так что мне просто интересно, если это плохая идея использовать дополнительное поле базы данных? Если бы у меня было 1 000 000 пользователей, когда я отправил новое сообщение администратора, мне нужно было бы обновить 1 000 000 строк, чтобы все могли видеть сообщение. Есть ли способ лучше? Также, как только пользователь заходит на мой сайт, я буду использовать сеанс для хранения значения, которое он видит, скрывая или скрывая сообщение, а не просматривая БД при каждой загрузке страницы.
ОБНОВЛЕНИЕ
Извините, я думаю, что мой пост мог быть немного запутанным или неясным, что именно я имел в виду, потому что большинство ответов направлено на систему сообщений, с которой это не очень близко.
Забудьте слово сообщения, пожалуйста, я постараюсь объяснить другим словом. Допустим, на сайте есть 1 администратор, это единственный администратор, который может отправить сообщение для просмотра пользователям. Пользователи увидят только 1 сообщение, если за время существования сайта будет опубликовано 2352345234 сообщения, это не имеет значения, они увидят только 1 сообщение, самое новое сообщение.
Теперь некоторые пользователи, которые входят в систему и видят это сообщение «div» на странице, могут устать смотреть на него, поэтому они смогут скрыть его от того, чтобы оно снова отображалось.
Это будет так же просто, как да или нет, чтобы показать это сообщение на этой странице.
Однако если я решу, что мне нужно опубликовать новое сообщение администратора, чтобы все пользователи могли его видеть, то даже пользователь, который решил скрыть и не показывать сообщение администратора, все равно увидит его, пока не решит больше его не видеть.