У меня есть 4 таблицы: users
, posts
, categories
, categories_map
posts
имеет id
, text
, category_id
categories_map
содержит user_id
и category_id
Моя цель - сделать очередь, которую пользователь может просмотреть. Кроме того, пользователь сможет пропустить некоторые сообщения или редактировать текст в них. Если пользователь пропустил сообщение, он никогда не появится в очереди. Однако пользователь не может изменить последовательность, потому что cron будет выполнять script.
Первый подход, я думаю, состоит в том, чтобы создать таблицу, которая будет содержать
user_id
, post_id
, text_modified
, is_skipped
, last_posted
. Поэтому, когда выполняется задание cron, он оставит временную метку, поэтому в следующий раз этот пост не будет схвачен, и пользователь легко сможет изменить текст для этого сообщения.
Второй подход заключается в создании отдельной таблицы, где очередь будет генерироваться для пользователя user_id
, post_id
, category_id
, text_modified
. Таким образом, задача cron может легко выполнить эту таблицу и удалить строку после ее завершения. Но при таком подходе, если у меня будет 30 пользователей, в среднем по 3 категории, каждая из которых содержит по 5000 должностей, моя таблица будет иметь уже 450000 строк. Да, если он правильно проиндексирован, все должно быть хорошо. Но будет ли он масштабируемым, если у меня будет 100-200 пользователей?
Какой подход мне пойти или есть ли другое решение?