我有 3 个包含以下列的表:
* users : user_id
* votes : user_id, creation_id
* creations : creation_id, creation_points
每人user
可以为每人投票一次creation
。当用户投票时,会发生这种情况:
- Table : 用and
votes
插入一个新行(这样我们可以检查用户是否已经投票支持这个创建)user_id
creation_id
- 表
creations
:将 +1 添加到creation_points
相关创建的行
但是现在,我希望当用户成功为一个创作投票时,它会向他显示他还没有投票的下一个创作。我怎样才能做到这一点?
我试过这样:
creation_id
从creations
表中选择下一个(其中creation_id
大于当前的creation_id
)- 检查这对夫妇
creation_id
&是否user_id
已经存在于votes
表中。如果存在,请从 1) 重试。
这种方法的问题是,如果用户已经投票支持下一个创建,它需要大量查询。如果他已经为所有创作投票,它也会创建一个无限循环。还有其他选择吗?