cari

Rumah  >  Soal Jawab  >  teks badan

mysql - Adakah perlu untuk menetapkan lajur berasingan sebagai kunci utama untuk jadual hubungan perantaraan dalam pangkalan data?

Sebagai contoh, peranan dan pengguna biasa dikaitkan dengan jadual persatuan pengguna peranan Medan adalah seperti berikut:
role_id
user_id

Apabila terdapat dua medan ini, adakah perlu untuk menyediakan lajur id yang berasingan sebagai kunci utama?

phpcn_u1582phpcn_u15822712 hari yang lalu1142

membalas semua(4)saya akan balas

  • 某草草

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

    Tidak perlu.
    Tetapi anda boleh mengindeks kedua-dua medan untuk mempercepatkan pertanyaan.

    balas
    0
  • 高洛峰

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

    Setiap jadual hendaklah mempunyai kunci utama, sebaik-baiknya kunci primer yang ditambah secara automatik

    balas
    0
  • 世界只因有你

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

    Setakat paradigma reka bentuk pangkalan data, saya rasa jika kedua-dua ID ini boleh membentuk kunci utama, tidak perlu menambah ID lain.

    balas
    0
  • 女神的闺蜜爱上我

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

    Jika terdapat hubungan banyak-ke-banyak antara pengguna dan peranan:

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

    Dengan cara ini, anda bukan sahaja boleh menyemak semua kebenaran pengguna tertentu, tetapi juga menyemak semua pengguna dengan kebenaran tertentu (seperti pentadbir super).

    balas
    0
  • Batalbalas