Par exemple, les rôles et utilisateurs communs sont associés à la table d'association rôle utilisateur. Les champs sont les suivants :
role_id
user_id
Lorsqu'il y a ces deux champs, est-il nécessaire de configurer une colonne distincte d'identifiant comme clé primaire ?
Pas besoin.
Mais vous pouvez indexer les deux champs pour accélérer les requêtes.
Chaque table doit avoir une clé primaire, de préférence une clé primaire auto-incrémentée
En ce qui concerne le paradigme de conception de bases de données, je pense que si ces deux identifiants peuvent former une clé primaire, il n'est pas nécessaire d'ajouter un autre identifiant.
S'il existe une relation plusieurs-à-plusieurs entre l'utilisateur et le rôle :
De cette façon, vous pouvez non seulement vérifier toutes les autorisations d'un certain utilisateur, mais également vérifier tous les utilisateurs disposant de certaines autorisations (telles que le super-administrateur).