在不向表添加字段的情况下创建下一个功能?

时间:2011-09-23 18:08:25

标签: php javascript mysql

我有一个民意调查网络应用程序,它有一堆民意调查。有两个表,一个是民意调查问题和答案,另一个是民众对这些民意调查的投票。对于我想要提供下一个功能的每个用户,当他们按下一个按钮时,他们将进行一个他们没有回答的新轮询。我不想再向表中添加字段,我不知道如何为特定用户“保存”尚未回答的轮询ID。这肯定已经做过很多次了,你用过的解决方案/设计模式是什么?

2 个答案:

答案 0 :(得分:2)

获取随机投票用户尚未回答:

SELECT p.poll_id FROM polls p WHERE p.poll_id NOT IN
(SELECT r.poll_id FROM poll_to_user r WHERE r.user_id = [current_user_id])
ORDER BY RAND() LIMIT 1;

答案 1 :(得分:1)

您只需查询此用户未投票的投票ID。

SELECT p.id 
FROM polls p
WHERE p.id NOT IN (SELECT v.poll_id FROM votes v WHERE v.user_id = $this_user_id)
ORDER BY p.date_added 
LIMIT 1;

ORDER BY RAND() LIMIT 1如果你想随意拿一个。

如果votes的表结构不存储轮询ID和用户ID,则必须有其他方法来唯一标识轮询和用户。