[前][次][番号順一覧][スレッド一覧]

mysql:1979

From: (moeru) <<moeru@xxxxxxxxxx>>
Date: Tue, 09 May 2000 20:24:33 +0900
Subject: [mysql 01979] Re: AUTO_INCREMENT


2000/05/08 23:53:33 +0900にとみたまさひろ <tommy@xxxxxxxxxx>さんに頂いた
「[mysql 01978] Re: AUTO_INCREMENT」への返事です。

とみたさん、こんにちは(^^)

>そんなことはありません。AUTO_INCREMENT は自動的に番号をつけてくれるとい
>うだけです。

理解しました。便利ですね(^^)

>> 	PRIMARY KEY (id,username)
>だと、(1,"hoge"), (2, "fuga"), (3, "hoge"), (1, "fuga") というレコードが
>作れてしまうと思うんですが、これは多分意図してないですよね?
>
>「id と usrename の組合せが一意である」じゃなくて「id と username それぞ
>れ一意である」ようにしたいのなら、

質問して良かったです。。。大変なことになるところでした(^^;

ぼくは、データベースでの「一意」という意味がよく分かってないみたいです(^^;

「一意」がPRIMARY KEY(id)などによって
usersテーブル全体に意味を持たせることができるのか
usersテーブルの中の各フィールドにのみなのかということです。


>	PRIMARY KEY(id), UNIQUE (username)
>とした方がいいと思います。

UNIQUE (username)なんてあるんですね。


CREATE TABLE users (
	id INT NOT NULL AUTO_INCREMENT,
	username VARCHAR(20) NOT NULL,
	password VARCHAR(20),
	email VARCHAR(50) NOT NULL,
	PRIMARY KEY (id,username)
	INDEX (username) ,
	INDEX (email) ,
);

つまり、このusersテーブルの中で、
UNIQUE (username)とすれば、この後登録されるであろうユーザー名に
同じ名前を使うことができないと理解すればいいでしょうか。


ぼくは、このことをPHPのプログラム側で解決しようと思っていたのですが
これは、データベースの設計上そうしたほうがいいでしょうか。(実行速度的にとか。。)

であれば、

CREATE TABLE users (
	id INT NOT NULL AUTO_INCREMENT,
	username VARCHAR(20) NOT NULL,
	password VARCHAR(20),
	email VARCHAR(50) NOT NULL,
	PRIMARY KEY(id)
	UNIQUE (username,email)
);

で
	INDEX (username) ,
	INDEX (email) ,
はいらないってことですか?
で
usernameに今後同じ名前を許可しない。
emailに今後同じ名前を許可しない。


それと、うちの場合、詐欺防止に必死なんですが(^^;

username-Aの人がemail-Aで登録されたとします。
その後
username-Aの人がusername-Bで登録して
username-B email-A

を許可したくない場合

UNIQUE (username,email)

でいいでしょうか?

アドバイスいただけたら幸いですm(__)m
どうぞ宜しくお願いします。



モエル
ぐるぐるオークション
http://www.pileup.com/auction/
*新しいサイト(ぐるぐる)構築の為の仲間募集中です(^^)

[前][次][番号順一覧][スレッド一覧]

      1977 2000-05-08 23:37 [<moeru@xxxxxxxxxx>  ] AUTO_INCREMENT                          
      1978 2000-05-08 23:53 ┗[とみたまさひろ <tomm]                                       
->    1979 2000-05-09 20:24  ┗[<moeru@xxxxxxxxxx>  ]                                     
      1980 2000-05-09 21:07   ┗[とみたまさひろ <tomm]                                   
      1982 2000-05-09 21:39    ┗[<moeru@xxxxxxxxxx>  ]