例如常見的角色和使用者關聯的角色使用者關聯表,欄位如下:role_iduser_id
當有這兩個欄位的時候是否有必要單獨設定一列id來當主鍵?
沒必要。 但是你可以將兩個欄位都建立索引以加快查詢速度。
每一個表都應該設定一個主鍵,並且最好是自增的主鍵
就資料庫設計的範式化來說,我覺得如果這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) );
這樣,既可以查到某個使用者的所有權限,又可以查到擁有某個權限(例如超級管理員)的所有使用者。
沒必要。
但是你可以將兩個欄位都建立索引以加快查詢速度。
每一個表都應該設定一個主鍵,並且最好是自增的主鍵
就資料庫設計的範式化來說,我覺得如果這2個id能組成主鍵的化就沒有必要再加個id了。
user和role多對多重關聯的話:
這樣,既可以查到某個使用者的所有權限,又可以查到擁有某個權限(例如超級管理員)的所有使用者。