文章詳情頁
mysql - 請問數據庫的中間關聯表,有沒有必要單獨設置一列為主鍵?
瀏覽:85日期:2022-06-11 09:18:21
問題描述
比如常見的角色和用戶關聯的角色用戶關聯表,字段如下:role_iduser_id
當有這兩個字段的時候是否有必要單獨設置一列id來作為主鍵?
問題解答
回答1:沒必要。但是你可以將兩個字段都建立索引以加快查詢速度。
回答2:每一個表都應該設置一個主鍵,并且最好是自增的主鍵
回答3:就數據庫設計的范式化來說,我覺得如果這2個id能組成主鍵的化就沒有必要再加個id了。
回答4: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));
這樣,既可以查到某個用戶的所有權限,又可以查到擁有某個權限(例如超級管理員)的所有用戶。
排行榜
