多个表找到正确的结果问题

时间:2012-03-18 07:41:49

标签: mysql

我坚持这一点并寻找开发者反馈 - 非常感谢您的帮助!

首先,我不是MySQL中最伟大的,所以我在每个查询中都在努力,但我希望你们能够确认我需要解决问题的正确表格。

我已经用数据填写了“用户”表。

一般的要点是我需要为我正在组合的项目设置投票系统,此时我的头脑是至少需要成为第3范式的表格。

用户可以对其他用户进行投票,我需要将其记录下来,以便在user2上投票的用户1再也不能在user2上重新投票。

我希望能够回忆起这些选票和在网站上显示。

我创建了除“用户”之外的3个表,但我认为这可以在您的帮助下更好地完成。

1 个答案:

答案 0 :(得分:0)

最简单的构造可能是只拥有现有的用户表并添加votes表来跟踪投票;

CREATE TABLE votes (
  user_who_voted INT NOT NULL,
  user_who_received_vote INT NOT NULL
);

CREATE UNIQUE INDEX only_one_vote
ON votes(user_who_voted, user_who_received_vote);

唯一索引将跟踪投票是唯一的,对同一个人的第二次投票将失败。

请参阅here了解其工作原理的示例。