suchen

Heim  >  Fragen und Antworten  >  Hauptteil

mysql - Ist es notwendig, eine separate Spalte als Primärschlüssel für die relationale Zwischentabelle in der Datenbank festzulegen?

Zum Beispiel sind die allgemeinen Rollen und Benutzer mit der Rollenbenutzerzuordnungstabelle verknüpft. Die Felder lauten wie folgt:
role_id
user_id

Wenn es diese beiden Felder gibt, ist es dann notwendig, eine separate ID-Spalte als Primärschlüssel einzurichten?

phpcn_u1582phpcn_u15822712 Tage vor1146

Antworte allen(4)Ich werde antworten

  • 某草草

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

    没必要。
    但是你可以将两个字段都建立索引以加快查询速度。

    Antwort
    0
  • 高洛峰

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

    每一个表都应该设置一个主键,并且最好是自增的主键

    Antwort
    0
  • 世界只因有你

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

    就数据库设计的范式化来说,我觉得如果这2个id能组成主键的化就没有必要再加个id了。

    Antwort
    0
  • 女神的闺蜜爱上我

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

    user和role多对多关联的话:

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

    这样,既可以查到某个用户的所有权限,又可以查到拥有某个权限(例如超级管理员)的所有用户。

    Antwort
    0
  • StornierenAntwort