我正在运行 MySQL,并且我有一个网站,用户可以在该网站上匿名投票给自己和其他用户的文章。我正在使用 GD-rating 1.9,他禁用了基于 cookie 和 IP 的文章的两次投票。但是,我让拥有来自 ISP 的动态 IP 的用户删除 cookie 并每天为自己投票。
我想要一种 SQL 方式(最好但 php 可以)来查看每篇文章的摘要,其中来自同一城市的人为该文章投票超过 3 次。
日志文件的格式如下:
CREATE TABLE IF NOT EXISTS `wp_gdsr_votes_log` (
`record_id` int(11) NOT NULL AUTO_INCREMENT,
`id` int(11) DEFAULT NULL,
`vote_type` varchar(10) DEFAULT 'article',
`multi_id` int(11) DEFAULT '0',
`user_id` int(11) DEFAULT '0',
`vote` int(11) DEFAULT '0',
`object` text NOT NULL,
`voted` datetime DEFAULT NULL,
`ip` varchar(32) DEFAULT NULL,
`user_agent` varchar(255) DEFAULT NULL,
`comment_id` bigint(20) unsigned DEFAULT '0',
`city` varchar(255) NOT NULL,
`region` varchar(255) NOT NULL,
`country` varchar(255) NOT NULL,
`zipcode` int(11) NOT NULL,
PRIMARY KEY (`record_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=21263 ;
id
指文章并city
指选民所在的城市。
只是为了澄清这user_id
仅适用于登录用户,这是一小部分选民。
我也知道这不会阻止任何类型的代理投票,但我在我的投票代码中反驳说,如果在机器投票上打开了某些端口,我什至不考虑它(苛刻的技术,但有效)。
我也知道有可能来自大城市的用户可能有很多人使用该网站,或者人们可能有来自同一城市的朋友看到文章并为他们投票。如果这看起来像是合法投票,我计划稍后通过使用城市人口来使用有根据的猜测来使用更多数据。产生这个想法的原因是我有一个人住在葡萄牙的一个城市,他的城市人口约为 5000,但一个人的文章每天都在该城市获得 10 票。