2016-03-02 2 views
2

Я пытаюсь найти систему интерактивных уведомлений. Мое приложение построено с помощью Laravel, и в настоящее время я использую Pusher для трансляции определенных событий клиенту. Я буду использовать тот же процесс с системой уведомлений, однако, когда уведомление появляется для пользователя, я хочу, чтобы какой-то стиль на нем оставался, если пользователь не нажимает или не зависает над уведомлением.Laravel Интерактивные уведомления

Я знаю, что могу сделать это с помощью Javascript, но что делать, если пользователь не действует с этим уведомлением, не выписывает и не заходит обратно. Я хочу, чтобы этот стиль оставался неповрежденным, пока пользователь не взаимодействует с этим уведомлением.

Было бы лучше создать контроллер уведомлений и всякий раз, когда пользователь взаимодействует с этим уведомлением, запись базы данных обновляется для этого конкретного пользователя? Это похоже на то, что уведомления будут публичными и переданы практически всем пользователям ... и иметь запись базы данных для каждого пользователя ..., которая могла бы создать TON записей.

Любая помощь приветствуется. Благодаря!

ответ

1

Не уверен, если это будет лучший способ, но я бы установка:

  1. модель уведомления
  2. Связь с пользователем. (Пользователь - Извещение - от многих до многих)
  3. Промежуточная таблица для уведомления & Пользовательские отношения.

Модель уведомления может иметь следующие поля базы данных для хранения ваших данных уведомления.

  • ID
  • название
  • сообщение
  • статус

и ваш промежуточный стол может иметь (notification_user стол)

  • notification_id
  • user_id
  • read_on (метка времени)
  • is_archived (boolen)

Вы можете обновить из read_on метку времени, когда пользователь прочитал уведомление, чтобы вы не показать им все время. И вы также можете предоставить им возможность архивирования и т. Д., Которые должны быть в вашей сводной таблице.

Надеюсь, это поможет.

+0

Это похоже на то, как я думал о его настройке. Вы предвидите проблему, если уведомление отправлено 1000 пользователям, создав тем самым 1000 записей базы данных? Похоже, эта таблица была бы просто ОГРОМНОЙ. –

+0

Если вы используете MYSQL, а ваш notification_id - unsigned int, наибольшее значение - 4 294 967 295. Если значение unsigned bigint наибольшее значение составляет 18 446 744 073 709 551 615. Если вы приблизитесь к этим цифрам, я думаю, вы можете начать беспокоиться об этом :) –

+0

Хороший момент, спасибо! –

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