jeesite快速开发平台(五)----用户-角色-部门-区域-菜单-权限表关系

末蓝、 2022-06-02 07:07 270阅读 0赞

一、表关系

一共有8张表分别用来实现用户-角色-部门-区域-菜单-权限管理,详细如下:

SouthEast

二、SQL语句

  1. /*********************一共八张表************************/
  2. select * from sys_user; //用户表
  3. select * from sys_menu; //菜单表
  4. select * from sys_role; //角色表
  5. select * from sys_user_role; //用户角色表
  6. select * from sys_role_menu; //角色与菜单表
  7. select * from sys_area; //区域表
  8. select * from sys_office; //公司和部门表
  9. select * from sys_role_office; //角色与部门表
  10. /*********************用户关联角色************************/
  11. select * from sys_user where id='11'
  12. select * from sys_user_role where user_id='11'
  13. select * from sys_role where id='3'
  14. select count(1),user_id from sys_user_role GROUP BY user_id
  15. select count(*) from sys_user_role where user_id='1'
  16. select us.name,sr.name as rolename from (select * from sys_user where id='1') us
  17. left JOIN sys_user_role usrole on us.id=usrole.user_id
  18. LEFT JOIN sys_role sr on usrole.role_id = sr.id
  19. /****以用户表为主表(通过sys_user的ID关联sys_user_role中的user_id,然后再通过sys_user_role中的role_Id关联角色表)****/
  20. select su.name as username,sr.name as rolename from sys_user su
  21. LEFT JOIN sys_user_role sur on su.id = sur.user_id
  22. LEFT JOIN sys_role sr on sur.role_id = sr.id
  23. /****以角色表为主表(通过sys_role的id关联sys_user_role中的role_id,然后再通过sys_user_role中的user_id关联sys_ser表中的id)****/
  24. SELECT u.name as uname,a.name as rolename FROM sys_role a
  25. LEFT JOIN sys_user_role ur ON ur.role_id = a.id
  26. LEFT JOIN sys_user u ON u.id = ur.user_id
  27. select * from sys_user_role; //用户角色表
  28. select * from sys_role; //角色表
  29. /*********************角色关联菜单************************/
  30. /****以角色表为主表****/
  31. SELECT u.id as userid,u.name as username,a.id as roleid,a.name as rolename,sm.name menuname 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. LEFT JOIN sys_role_menu srm on srm.role_id = a.id
  35. LEFT JOIN sys_menu sm on srm.menu_id = sm.id
  36. select a.name as menuname FROM sys_menu a
  37. select a.name as menuname FROM sys_menu a
  38. LEFT JOIN sys_menu p ON p.id = a.parent_id
  39. /****以菜单表为主表****/
  40. select a.name as menuname,r.name as rolename,u.name as username FROM sys_menu a
  41. LEFT JOIN sys_menu p ON p.id = a.parent_id
  42. JOIN sys_role_menu rm ON rm.menu_id = a.id
  43. JOIN sys_role r ON r.id = rm.role_id AND r.useable='1'
  44. JOIN sys_user_role ur ON ur.role_id = r.id
  45. JOIN sys_user u ON u.id = ur.user_id
  46. select * from sys_user_role; //用户角色表
  47. select * from sys_role; //角色表
  48. select * from sys_role_menu; //角色与菜单表
  49. /*********************用户关联公司和部门************************/
  50. /****通过company_id关联机构表中的公司****/
  51. select su.name as username,so.name as companyname from sys_user su
  52. LEFT JOIN sys_office so on su.company_id = so.id
  53. select of.* from sys_user us
  54. left JOIN sys_office of on us.company_id = of.id where us.id='11'
  55. /****通过office_id关联机构表的部门****/
  56. select su.name as username,so.name as officename from sys_user su
  57. LEFT JOIN sys_office so on su.office_id = so.id
  58. select of.* from sys_user us
  59. left JOIN sys_office of on us.office_id = of.id where us.id='11'
  60. select * from sys_user; //用户表
  61. select * from sys_office; //公司和部门表
  62. /*********************角色关联公司和部门************************/
  63. /******通过sys_role中的id然后关联sys_user_role表中的role_id,然后再通过sys_user_role中的user_id关联sys_user中的id
  64. 然后再通过sys_role_office中的role_id关联sys_role中的id,最后通过sys_role_office中的office_id关联sys_office中的id*****/
  65. SELECT u.name as uname,a.id as roleid,a.name as rolename,so.name as officename FROM sys_role a
  66. LEFT JOIN sys_user_role ur ON ur.role_id = a.id
  67. LEFT JOIN sys_user u ON u.id = ur.user_id
  68. LEFT JOIN sys_role_office sro on a.id = sro.role_id
  69. LEFT JOIN sys_office so on sro.office_id = so.id
  70. select * from sys_user; //用户表
  71. select * from sys_user_role; //用户角色表
  72. select * from sys_role; //角色表
  73. select * from sys_office; //公司和部门表
  74. select * from sys_role_office; //角色与部门表
  75. /*********************公司和部关联区域表************************/
  76. /******通过sys_office中的area_id然后关联sys_area表中的id*****/
  77. select of.name as officename,ar.name as areaname from sys_office of
  78. LEFT JOIN sys_area ar on of.area_id=ar.id
  79. select * from sys_area; //区域表
  80. select * from sys_office; //公司和部门表

发表评论

表情:
评论列表 (有 0 条评论,270人围观)

还没有评论,来说两句吧...

相关阅读