Maison  >  Questions et réponses  >  le corps du texte

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?

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_u1582phpcn_u15822675 Il y a quelques jours1110

répondre à tous(4)je répondrai

  • 某草草

    某草草2017-06-22 11:56:41

    Pas besoin.
    Mais vous pouvez indexer les deux champs pour accélérer les requêtes.

    répondre
    0
  • 高洛峰

    高洛峰2017-06-22 11:56:41

    Chaque table doit avoir une clé primaire, de préférence une clé primaire auto-incrémentée

    répondre
    0
  • 世界只因有你

    世界只因有你2017-06-22 11:56:41

    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.

    répondre
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-22 11:56:41

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

    répondre
    0
  • Annulerrépondre