JEESITE快速開發平台(五)用戶-角色-部門-區域-菜單-權限表關系


一、表關系

一共有8張表分別用來實現用戶-角色-部門-區域-菜單-權限管理,詳細如下:

 

二、SQL語句

[java]  view plain  copy
  1. /*********************一共八張表************************/  
  2.   
  3. select * from sys_user; //用戶表  
  4. select * from sys_menu; //菜單表  
  5. select * from sys_role; //角色表  
  6. select * from sys_user_role; //用戶角色表  
  7. select * from sys_role_menu; //角色與菜單表  
  8. select * from sys_area; //區域表  
  9. select * from sys_office; //公司和部門表  
  10. select * from sys_role_office; //角色與部門表  
  11.   
  12. /*********************用戶關聯角色************************/  
  13.   
  14. select * from sys_user where id='11'  
  15. select * from sys_user_role where user_id='11'  
  16. select * from sys_role where id='3'  
  17.   
  18. select count(1),user_id from sys_user_role GROUP BY user_id  
  19. select count(*) from sys_user_role where user_id='1'  
  20.   
  21. select us.name,sr.name as rolename from (select *  from sys_user where id='1') us   
  22. left JOIN sys_user_role usrole on us.id=usrole.user_id  
  23. LEFT JOIN sys_role sr on usrole.role_id = sr.id  
  24.   
  25. /****以用戶表為主表(通過sys_user的ID關聯sys_user_role中的user_id,然后再通過sys_user_role中的role_Id關聯角色表)****/  
  26. select su.name as username,sr.name as rolename from sys_user su  
  27. LEFT JOIN sys_user_role sur on su.id = sur.user_id  
  28. LEFT JOIN sys_role sr on  sur.role_id = sr.id  
  29.   
  30. /****以角色表為主表(通過sys_role的id關聯sys_user_role中的role_id,然后再通過sys_user_role中的user_id關聯sys_ser表中的id)****/  
  31. SELECT u.name as uname,a.name as rolename FROM sys_role a  
  32. LEFT JOIN sys_user_role ur ON ur.role_id = a.id  
  33. LEFT JOIN sys_user u ON u.id = ur.user_id  
  34.   
  35. select * from sys_user_role; //用戶角色表  
  36. select * from sys_role; //角色表  
  37.   
  38.   
  39. /*********************角色關聯菜單************************/  
  40.   
  41. /****以角色表為主表****/  
  42. SELECT u.id as userid,u.name as username,a.id as roleid,a.name as rolename,sm.name menuname FROM sys_role a  
  43. LEFT JOIN sys_user_role ur ON ur.role_id = a.id  
  44. LEFT JOIN sys_user u ON u.id = ur.user_id  
  45. LEFT JOIN sys_role_menu srm on srm.role_id = a.id  
  46. LEFT JOIN sys_menu sm on srm.menu_id = sm.id  
  47.   
  48. select a.name as menuname  FROM sys_menu a  
  49.   
  50. select a.name as menuname  FROM sys_menu a  
  51. LEFT JOIN sys_menu p ON p.id = a.parent_id  
  52.   
  53. /****以菜單表為主表****/  
  54. select a.name as menuname,r.name as rolename,u.name as username FROM sys_menu a  
  55. LEFT JOIN sys_menu p ON p.id = a.parent_id  
  56. JOIN sys_role_menu rm ON rm.menu_id = a.id  
  57. JOIN sys_role r ON r.id = rm.role_id AND r.useable='1'  
  58. JOIN sys_user_role ur ON ur.role_id = r.id  
  59. JOIN sys_user u ON u.id = ur.user_id  
  60.   
  61. select * from sys_user_role; //用戶角色表  
  62. select * from sys_role; //角色表  
  63. select * from sys_role_menu; //角色與菜單表  
  64.   
  65.   
  66. /*********************用戶關聯公司和部門************************/  
  67.   
  68. /****通過company_id關聯機構表中的公司****/  
  69.   
  70. select su.name as username,so.name as companyname from sys_user su  
  71. LEFT JOIN sys_office so on su.company_id = so.id  
  72.   
  73. select of.* from sys_user us  
  74. left JOIN sys_office of on us.company_id = of.id where us.id='11'  
  75.   
  76. /****通過office_id關聯機構表的部門****/  
  77. select su.name as username,so.name as officename from sys_user su  
  78. LEFT JOIN sys_office so on su.office_id = so.id  
  79.   
  80. select of.* from sys_user us  
  81. left JOIN sys_office of on us.office_id = of.id where us.id='11'  
  82.   
  83. select * from sys_user; //用戶表  
  84. select * from sys_office; //公司和部門表  
  85.   
  86. /*********************角色關聯公司和部門************************/  
  87.   
  88. /******通過sys_role中的id然后關聯sys_user_role表中的role_id,然后再通過sys_user_role中的user_id關聯sys_user中的id 
  89. 然后再通過sys_role_office中的role_id關聯sys_role中的id,最后通過sys_role_office中的office_id關聯sys_office中的id*****/  
  90. SELECT u.name as uname,a.id as roleid,a.name as rolename,so.name as officename FROM sys_role a  
  91. LEFT JOIN sys_user_role ur ON ur.role_id = a.id  
  92. LEFT JOIN sys_user u ON u.id = ur.user_id  
  93. LEFT JOIN sys_role_office sro on a.id = sro.role_id  
  94. LEFT JOIN sys_office so on sro.office_id = so.id  
  95.   
  96. select * from sys_user; //用戶表  
  97. select * from sys_user_role; //用戶角色表  
  98. select * from sys_role; //角色表  
  99. select * from sys_office; //公司和部門表  
  100. select * from sys_role_office; //角色與部門表  
  101.   
  102. /*********************公司和部關聯區域表************************/  
  103.   
  104. /******通過sys_office中的area_id然后關聯sys_area表中的id*****/  
  105. select of.name as officename,ar.name as areaname from sys_office of  
  106. LEFT JOIN sys_area ar on of.area_id=ar.id  
  107.   
  108. select * from sys_area; //區域表  
  109. select * from sys_office; //公司和部門表  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM