Очередь пользователей в mysql - PullRequest
0 голосов
/ 12 февраля 2019

Я пытаюсь создать таблицу очередей

id | queue_id | user_id | is_active_to_vote
1  | 14       | 1       | 1
2  | 14       | 2       | 0
3  | 14       | 3       | 0
4  | 15       | 1       | 1
5  | 15       | 2       | 0
6  | 15       | 3       | 0

список пользователей в результате выглядит следующим образом (для queue_id = 14)

Sam (user_id=1 votes now)
John (user_id=2)
Bill (user_id=3)

Но если пользователь не голосовал враз мне нужно прибегнуть к очереди вот так

John (user_id=2 votes now)
Bill (user_id=3)
...
Sam (user_id=1 last user in queue)

Какой хороший способ сделать это?

1 Ответ

0 голосов
/ 12 февраля 2019

Поскольку вы используете информацию «не голосовал вовремя» для сортировки своей очереди, вам нужна эта информация о времени голосования где-то - либо в новом поле вашей текущей таблицы, либо в отдельной таблице.

Как только вы это сделаете, вы сможете отсортировать очередь на основе критериев, которые вы хотите (которые мне не ясны на данный момент - это user_id по умолчанию?).

Обратите внимание, что в целом я бы посоветовал вам выполнять управление очередями в контроллере приложения, а не непосредственно в MySQL.

...