У меня есть 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 пользователей?
Какой подход мне пойти или есть ли другое решение?