Quand on a une table avec un identifiant unique (type login), est-il intéressant de rajouter un champ id dans cette table, de type INT autoincrement PRIMARY KEY ? Notamment dans le cas de nombreuses tables d'associations ?
Version imprimable
Quand on a une table avec un identifiant unique (type login), est-il intéressant de rajouter un champ id dans cette table, de type INT autoincrement PRIMARY KEY ? Notamment dans le cas de nombreuses tables d'associations ?
NON , absolument inutil !
Si le login doit etre unique dans la table , c est lui le PRIMARY KEY et donc ton champs autoincrement ne sert pas a grand chose !
OK. Mais le gain de place et de rapidité n'est-il pas intéressant dans le cadre des tables d'association. J'ai mon user_login qui est un VARCHAR(20), il est une foreign key dans une dizaine de tables d'association. Est-ce que ce ne serait pas plus optimisé si j'utilisais non pas le login mais un id INT autoincrement ?
bah l'avantage si c une foreign key dans plusieurs table ,en autoincremente tu evite de balader des pseudos dans plusieurs table !
Apres cote performance je suis pas sur que tu sois autant gagnant que ça !
OK, merci ;)
Mais pas contre dans des tables "normal" (dite table facture,devis,... mais sans jointure), est - t - il obligatoir d'avoir un ID?
Non plus, l'Id est surtout là pour les jointures justement ou pour identifier/accéder à des lignes plus rapidement (puisque c'est un entier croissant) qu'avec une chaine de caractères.
Le fait de le mettre en autoincrement facilite en plus la tache lors de l'insertion pour conserver ces Id uniques et croissants.