mysql - Est-il nécessaire de définir une colonne distincte comme clé primaire pour la table relationnelle intermédiaire dans la base de données?
phpcn_u1582
phpcn_u1582 2017-06-22 11:54:41
0
4
1191

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 ?

phpcn_u1582
phpcn_u1582

répondre à tous(4)
某草草

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 :

CREATE TABLE user_role (
    user_id INTEGER NOT NULL,
    role_id INTEGER NOT NULL,
    PRIMARY KEY (user_id, role_id),
    KEY (role_id)
);

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).

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal