場景:數據庫存在角色表、菜單表、角色菜單關系表,現需新增菜單,并維護角色菜單關系,因原來角色已有的菜單很多,如果通過功能操作,很費時間,想從數據庫中直接維護菜單、角色菜單關系表,采取的方案如下:
表:
system_role
system_menu
system_role_menu
操作步驟:
- 菜單表中新加菜單
insert into system_menu(column1,column2,…..,columnN) values(value1,value2,……valueN)
- 建立角色表和新增菜單的關系
關鍵的來了:system_role、system_menu沒有現成的外鍵關聯,怎么辦,沒有辦法了嗎?不,當然有辦法,咱們給新建個關聯外鍵即可,如下
select r.id, 1 as foreign_key from system_role;
select m.id, 1 as foreign_key from system_menu;
建立兩個表的關系:
select rr.id as role_id ,mm.id as menu_id
from (select r.id, 1 as foreign_key from system_role) rr
left join (select m.id, 1 as foreign_key from system_menu) mm
on mm.foreigh_key=rr.foreign_key;
- 將新建立的關系插入到角色菜單表中
最關鍵的來了:
insert into system_role_menu(role_id,menu_id)
select rr.id as role_id ,mm.id as menu_id
from (select r.id, 1 as foreign_key from system_role) rr
left join (select m.id, 1 as foreign_key from system_menu) mm
on mm.foreigh_key=rr.foreign_key;
如此即可完成。
如果我的文章可以幫到你,有錢的捧個錢場,沒錢的捧個人場,這也是支撐我繼續做下去的動力!
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。