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; //公司和部门表  

猜你喜欢

转载自www.cnblogs.com/hzwh/p/9035075.html
今日推荐