Nous concevons une table pour l'entité utilisateur. La seule exigence non triviale est qu'il doit y avoir une URL permanente vers l'entité utilisateur (par exemple son profil). Il y a beaucoup de choses sur le web à propos de l'int/long vs UUID. Mais ce n'est toujours pas clair pour moi.
- Étant donné que le profil contient des informations privées, ce n'est pas une bonne idée d'avoir un identifiant prévisible intégré dans l'URL. Ai-je raison ?
- Pour satisfaire la première, je peux avoir une clé primaire sous forme d'UUID et l'intégrer dans l'URL. Mais il y a deux questions. Dois-je m'inquiéter de l'impact sur les performances de l'utilisation de l'UUID comme clé primaire dans tous les cas : indexation, insertion, sélection, jointure ?
Cela dit, laquelle des propositions suivantes est la meilleure (par rapport à ce qui précède) ?
CREATE TABLE users(
pk UUID NOT NULL,
.....
PRIMARY KEY(pk)
);
ou
CREATE TABLE users(
pk INT NOT NULL AUTO_INCREMENT,
id UUID NOT NULL,
.....
PRIMARY KEY(pk),
UNIQUE(id)
);