Je suis un cours intitulé "systèmes de bases de données" et pour notre projet de classe, je dois concevoir un site web.
Voici un exemple de tableau que j'ai créé :
CREATE TABLE users
(
uid INT NOT NULL AUTO_INCREMENT,
username VARCHAR(60),
passhash VARCHAR(255),
email VARCHAR(60),
rdate DATE,
PRIMARY KEY(uid)
);
Le professeur m'a dit que "uid" (user id) était complètement inutile et superflu et que j'aurais dû utiliser le nom d'utilisateur comme clé primaire, puisque deux utilisateurs ne peuvent pas avoir le même nom d'utilisateur.
Je lui ai dit qu'il était pratique pour moi d'utiliser un identifiant d'utilisateur parce que lorsque j'appelle quelque chose comme example.com/viewuser?id=5
Je vérifie simplement le paramètre avec : is_numeric($_GET['id'])
... inutile de dire qu'il n'était pas convaincu.
Comme j'ai vu user_id et d'autres attributs similaires (thread_id, comment_id, entre autres) sur de nombreux tutoriels et en regardant le schéma de base de données de logiciels populaires (par exemple vbulletin), il doit y avoir beaucoup d'autres raisons (plus fortes).
Ma question est donc la suivante : comment justifier le besoin d'un identifiant non nul à incrémentation automatique comme clé primaire par rapport à l'utilisation d'un autre attribut comme le nom d'utilisateur ?