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

熱門標簽