用户在mysql中排队

时间:2019-02-12 08:36:57

标签: mysql sql queue

我正在尝试创建队列表

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 :(得分:0)

由于您要使用“未及时投票”信息来对队列进行排序,因此您需要在某处(在当前表的新字段中或在单独的表中)有关投票时间的信息。

有了这些,您将能够根据所需的条件对队列进行排序(目前尚不明确-默认为user_id吗?)。

请注意,一般而言,我建议您在应用程序控制器中执行队列管理,而不是直接在MySQL中执行。