Php 如何在评级系统中只允许一票

Php 如何在评级系统中只允许一票,php,rating-system,Php,Rating System,伙计们,我制作了一个基于jquery和css的明星评级系统。现在我真的想不出如何将用户投票保存到数据库中。最重要的是如何将一个用户限制为一票。 由于该网站的访问者数量巨大,我无法将每个用户的ip保存到数据库中。而且,我认为它不好用,因为即使我的ip地址本身也是动态的。每次我断开并重新连接我的互联网,我的ip就会改变,我可以再次投票。所以我认为这行不通。 这就是我对将投票保存到数据库的想法: 我将只保存一个页面收到的投票数,并保存该页面的总评分。 我会把评分分为票数。所以它会给我平均评分。对吗?

伙计们,我制作了一个基于jquery和css的明星评级系统。现在我真的想不出如何将用户投票保存到数据库中。最重要的是如何将一个用户限制为一票。

由于该网站的访问者数量巨大,我无法将每个用户的ip保存到数据库中。而且,我认为它不好用,因为即使我的ip地址本身也是动态的。每次我断开并重新连接我的互联网,我的ip就会改变,我可以再次投票。所以我认为这行不通。

这就是我对将投票保存到数据库的想法: 我将只保存一个页面收到的投票数,并保存该页面的总评分。

我会把评分分为票数。所以它会给我平均评分。对吗?


但我想不出办法限制一个用户只能投一票。请提供帮助。

研究如何使用索引构建数据库。我创建了一个用户收藏夹系统,它只允许每个用户/收藏夹组合插入一行。例如:用户选择一个收藏夹,数据库中存储的值是用户ID和收藏夹ID。如果用户再次尝试选择它,数据库将不会插入该行,因为它是完全重复的

研究如何用索引构建数据库。我创建了一个用户收藏夹系统,它只允许每个用户/收藏夹组合插入一行。例如:用户选择一个收藏夹,数据库中存储的值是用户ID和收藏夹ID。如果用户再次尝试选择它,数据库将不会插入该行,因为它是完全重复的

似乎没有切实可行的办法来严格执行网上每人一票

在计算机网络上,我们经常为人们使用代理。其中一些是

  • 网络或应用程序登录
  • 电邮地址
  • IP地址
  • 饼干
等等。但当涉及到每人一票时,所有这些都有问题

  • 对于web登录,一个人通常可以创建多个帐户。(特别是如果他们是免费的。)
  • 电子邮件帐户是免费的,许多(大多数?)人现在有多个电子邮件帐户
  • IP地址可能有效,但仅适用于内部网(每台计算机一个IP地址)和非共享计算机(公司政策为每台计算机一人)
  • Cookie与web登录存在相同的问题。(用户可以删除它们。)

如果一张选票真的很有价值,有些人会不厌其烦地投两次票。但是大多数选票都不是很有价值。

似乎没有切实可行的办法来严格执行网上每人一票

在计算机网络上,我们经常为人们使用代理。其中一些是

  • 网络或应用程序登录
  • 电邮地址
  • IP地址
  • 饼干
等等。但当涉及到每人一票时,所有这些都有问题

  • 对于web登录,一个人通常可以创建多个帐户。(特别是如果他们是免费的。)
  • 电子邮件帐户是免费的,许多(大多数?)人现在有多个电子邮件帐户
  • IP地址可能有效,但仅适用于内部网(每台计算机一个IP地址)和非共享计算机(公司政策为每台计算机一人)
  • Cookie与web登录存在相同的问题。(用户可以删除它们。)

如果一张选票真的很有价值,有些人会不厌其烦地投两次票。但是大多数投票都不是很有价值。

在投票时,您可以使用cookies并设置cookie(在有权限的情况下)吗?如果只存储ip地址已经非常昂贵,您将无法找到任何可靠的解决方案。这种方法对您来说可能听起来很愚蠢,这只允许您的网站成员进行评分。@KyleHudson我想到了这一点,但想不出如何存储用户投票选择的所有页面的信息。@MaSK您可以在Cookie/会话中存储多维数组。如果你真的担心几千行,也许你需要研究db优化。我运行了一个大约20000000行的saas应用程序(innodb和myisam的混合)。投票时,您是否可以使用cookies并设置cookie(在允许的情况下)?如果仅存储ip地址已经非常昂贵,您将无法找到任何可靠的解决方案。这种方法可能听起来很愚蠢,这只允许您的网站成员进行评分。@KyleHudson我想到了这一点,但想不出如何存储用户投票选择的所有页面的信息。@MaSK您可以在Cookie/会话中存储多维数组。如果你真的担心几千行,也许你需要研究db优化。我运行的saas应用程序大约有20000000行(innodb和myisam的混合)。哦,我有,这正是我所拥有的。这是我最喜欢的系统。但我需要一个评级系统。哦,我有,这正是我所拥有的。这是我最喜欢的系统。但我需要一个评级系统。