0

各記事ページの一意の訪問者を追跡したいだけです。2つのフィールドを持つテーブルを作成しました。キーおよび一意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

キーの設定が間違っていると思います。

4

4 に答える 4

3

主キーarticle_idとして定義すると、同じ を持つ 2 つのレコードが存在することはありません。article_id

article_id+ペアの重複を避けるために、両方のフィールドipの UNIQUE インデックスを定義できます: AND 。article_idip

例えば:

CREATE  TABLE `visits` (
  `article_id` INT NOT NULL ,
  `ip` VARCHAR(15) NULL ,
  UNIQUE INDEX `unique_article_ip` (`article_id`, `ip`) )
ENGINE = MyISAM;
于 2012-09-16T11:45:44.750 に答える
1

主キーも一意であるため、テーブルに表示されるのは最大 1 回です。

定義: リレーショナル テーブルの主キーは、テーブル内の各レコードを一意に識別します。

正しい主キーは両方の列です。

于 2012-09-16T11:38:09.770 に答える
0

主キーは行を一意に識別します。テーブルには、最大で1つの主キーを含めることができますが、複数の一意のキーを含めることができます。あなたが主キーarticle_idとして持っているので、あなたが得る出力はこれを明確に示しています

于 2012-09-16T11:50:35.683 に答える
0

以下を含むテーブルが必要です。

ID - 一意に生成された番号。これは PK DATE - 訪問日です。これは、1 つの IP からの一意の訪問を維持するのに役立ちます ARTICLE_ID - 記事 ID IP - IP のみ

次に、ARTICLE_ID、ARTICLE_ID、IP に UNIQUE INDEX を作成します。おそらくこの順序ですが、実行するクエリによって異なります。このようにして、1 日あたりの記事の一意の IP を追跡します。

于 2012-09-16T11:48:21.483 に答える