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).
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:
Dengan cara ini, anda bukan sahaja boleh menyemak semua kebenaran pengguna tertentu, tetapi juga menyemak semua pengguna dengan kebenaran tertentu (seperti pentadbir super).