mysql - Adakah perlu untuk menetapkan lajur berasingan sebagai kunci utama untuk jadual hubungan perantaraan dalam pangkalan data?
phpcn_u1582
phpcn_u1582 2017-06-22 11:54:41
0
4
1164

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_u1582
phpcn_u1582

membalas semua(4)
某草草

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

小葫芦

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

世界只因有你

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

女神的闺蜜爱上我

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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan