2009-08-20 8 views
0

Merci à tous pour vos réponses. J'apprends comme je vais - donc j'apprends mais j'ai encore beaucoup de chemin à faire. Pour le travail, nous utilisons principalement MySQL pour nos bases de données - le développement web. J'ai une question concernant les index uniques - quand les utiliser correctement et comment. Je suis sûr que je comprends leur but - déclarer une colonne comme une colonne "non-dupliquer", alias aucune valeur peut exister deux fois dans la table pour cette colonne spécifique. Si une insertion/mise à jour est tentée qui enfreint cette règle d'index, elle échoue.Conception de MySQL Unique Index

Je crée un système utilisateur pour un site et je conçois les tables de base de données pour le système. Une table est une table « utilisateur » - détient les utilisateurs

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

J'ai créé un index unique sur « email » parce que chaque e-mail doit être différent pour chaque utilisateur - il sera utilisé comme log-in. Cependant, je voudrais aussi créer un index unique pour 'lastName', 'firstName', et 'email' car deux utilisateurs ne devraient pas avoir la même combinaison de ces trois. Dois-je créer un autre index unique pour cette règle ou simplement en créer un pour ces trois? Est-il mauvais de répéter les colonnes dans les index?

Répondre

6

Même s'il n'est pas mauvais d'avoir une colonne dans plusieurs index dans certains cas, c'est redondant pour ce que vous essayez de faire.

Étant donné que vous n'autorisez pas la duplication de l'adresse e-mail, personne ne pourra envoyer un doublon premier/dernier/e-mail, car il échouera déjà le chèque UNIQUE par e-mail.

Questions connexes