mysql - 請問資料庫的中間關聯表,有沒有必要單獨設定一列為主鍵?
phpcn_u1582
phpcn_u1582 2017-06-22 11:54:41
0
4
1163

例如常見的角色和使用者關聯的角色使用者關聯表,欄位如下:
role_id
user_id

當有這兩個欄位的時候是否有必要單獨設定一列id來當主鍵?

phpcn_u1582
phpcn_u1582

全部回覆(4)
某草草

沒必要。
但是你可以將兩個欄位都建立索引以加快查詢速度。

小葫芦

每一個表都應該設定一個主鍵,並且最好是自增的主鍵

世界只因有你

就資料庫設計的範式化來說,我覺得如果這2個id能組成主鍵的化就沒有必要再加個id了。

女神的闺蜜爱上我

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

這樣,既可以查到某個使用者的所有權限,又可以查到擁有某個權限(例如超級管理員)的所有使用者。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板