我只想跟踪每个文章页面的唯一身份访问者。
我做了一个有两个字段的桌子。 article_id
为主要键,ip
为唯一
预期输出应该是:
article_id * IP
52 - 100.200.300.400
52 - 20.30.20.40
52 - 30.40.50.60
93 - 108.207.302.403
93 - 10.30.20.40
但它没有用,这就是我得到的:
article_id * IP
52 - 100.200.300.400
93 - 10.30.20.40
我认为我把钥匙设置错了。
答案 0 :(得分:3)
当您将article_id
定义为主键时,您将永远不会有两条具有相同article_id
的记录。
为避免重复article_id
+ ip
对,您可以定义两个字段的唯一索引:article_id
和ip
。< / p>
例如:
CREATE TABLE `visits` (
`article_id` INT NOT NULL ,
`ip` VARCHAR(15) NULL ,
UNIQUE INDEX `unique_article_ip` (`article_id`, `ip`) )
ENGINE = MyISAM;
答案 1 :(得分:1)
主键也是唯一的,因此它在表格中最多只显示一次。
定义:关系表的主键唯一标识表中的每条记录。
正确的主键是两列。
答案 2 :(得分:0)
您需要一个包含以下内容的表格:
ID - 唯一生成的数字,这个将是PK 日期 - 访问日期,这将有助于保留一个IP的独特访问 ARTICLE_ID - 文章ID IP - 只是IP
现在您在:ARTICLE_ID,ARTICLE_ID,IP上创建UNIQUE INDEX - 可能按此顺序,但它取决于您要执行的qyeries。通过这种方式,您将每天跟踪文章中的唯一IP。
答案 3 :(得分:0)
主键唯一标识一行。一个表最多只能有一个主键,但不止一个唯一键。您获得的输出清楚地证明了这一点,因为您将article_id
作为主键