Bonjour à tous,

je me pose une question quant à l'utilisation d'un index d'unicité. J'ai une table très simple du type :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
CREATE  TABLE IF NOT EXISTS `test`.`users_droits` (
  `idUser` INT UNSIGNED NOT NULL ,
  `idDroit` INT UNSIGNED NOT NULL )
ENGINE = InnoDB;
Dois je impérativement déclarer mes deux champs en Primary key ou puis je me contenter d'un index unique comme ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
CREATE UNIQUE INDEX `uniq_droit_user` ON `test`.`users_droits` (`idUser` ASC, `idDroit` ASC) ;
Tout en sachant que ces deux champs sont des clé étrangères :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
CREATE INDEX `fk_user_droit_1` ON `test`.`users_users` (`idUser` ASC) ;
CREATE INDEX `fk_user_droit_2` ON `test`.`users_droits` (`idDroit` ASC) ;
Mysql ne semble pas raler quand j'utilise un index unique et non un primary.

Merci pour vos réponses