Laravel - Показать пропущенный контент - PullRequest
1 голос
/ 16 апреля 2019

В моем приложении Laravel у меня есть Users и Posts. Я пытаюсь проверить, были ли созданы какие-либо сообщения, когда пользователь вышел из системы, а затем отобразить сообщение типа «Вот что вы пропустили», похожее на Twitter.

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

Таким образом, запланированное задание будет искать новый контент и добавлять строки в эту таблицу, если created_at дата публикации будет после last_login_at даты пользователя.

Затем, когда пользователь входит в систему, я отображал содержимое и обновлял last_login_at.

Меня беспокоит, будет ли это масштабируемым, как если бы миллион пользователей пропустил 20 сообщений, то есть 20 миллионов записей.

1 Ответ

1 голос
/ 16 апреля 2019

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

$posts = Post::where('created_at', '<=', Auth::user()->last_sign_in)->get()

в вашем клинке вы можете сосчитать

<p>You have missed: {{ $posts->count() }} posts</p>

Вам не понадобится дополнительная таблица

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