2009-08-20 11 views
0

ありがとう、皆さんはあなたの答えです。MySQLのユニークなインデックスデザイン

私は私が学んでいるように私は学んでいる - だから私は学んでいるが、まだ長い道のりがある。仕事のために、私たちは主に私たちのデータベースであるWeb開発用にMySQLを使用しています。私はユニークなインデックスに関する質問があります - それを正しく使用する方法と方法。

私は彼らの目的をよく理解していると確信しています - 「重複しない」列として列を宣言します。別名は、その特定の列の表に2回存在できません。その索引ルールに違反する挿入/更新が試行されると、失敗します。

サイトのユーザーシステムを作成していますが、システムのデータベーステーブルを設計しています。一つのテーブルには、「ユーザー」テーブルである - それは彼らのログインとして使用されます - 各電子メールは、ユーザごとに異なるものでなければなりませんので、私は「電子メール」に一意索引を作成しているユーザー

users 
----------------- 
int(4) usersID primary key 
varchar(255) lastName 
varchar(255) firstName 
varchar(255) email unique 
varchar(255) password 

を保持しています。ただし、 'lastName'、 'firstName'、および 'email'の一意のインデックスも作成する必要があります。これは、2人のユーザーが同じ3つの組み合わせを持つ必要がないためです。そのルールに別の一意のインデックスを作成するか、それとも3つのインデックスを作成するだけですか?インデックスの列を繰り返すのは悪いですか?

答えて

6

場合によっては複数のインデックスに列を持つことも悪くありませんが、実行しようとしていることは重複しています。

電子メールアドレスの重複を許可していないため、既に電子メールのUNIQUEチェックに失敗しているため、誰も重複したファースト/ラスト/電子メールを送信できません。

関連する問題