热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

一、表关系一共有8张表分别用来实现用户-角色-部门-区域-菜单-权限管理,详细如下:二、SQL语句[java] viewplain copy********************

一、表关系

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

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


推荐阅读
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • 本文介绍了如何通过安装 sqlacodegen 和 pymysql 来根据现有的 MySQL 数据库自动生成 ORM 的模型文件(model.py)。此方法适用于需要快速搭建项目模型层的情况。 ... [详细]
  • publicclassBindActionextendsActionSupport{privateStringproString;privateStringcitString; ... [详细]
  • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
  • 解决JavaScript中法语字符排序问题
    在开发一个使用JavaScript、HTML和CSS的Web应用时,遇到从SQLite数据库中提取的法语词汇排序不正确的问题,特别是带重音符号的字母未按预期排序。 ... [详细]
  • 数据类型--char一、char1.1char占用2个字节char取值范围:【0~65535】char采用unicode编码方式char类型的字面量用单引号括起来char可以存储一 ... [详细]
  • 本文探讨了如何在PHP与MySQL环境中实现高效的分页查询,包括基本的分页实现、性能优化技巧以及高级的分页策略。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 本文探讨了程序员这一职业的本质,认为他们是专注于问题解决的专业人士。文章深入分析了他们的日常工作状态、个人品质以及面对挑战时的态度,强调了编程不仅是一项技术活动,更是个人成长和精神修炼的过程。 ... [详细]
  • 在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ... [详细]
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • 在日常生活中,支付宝已成为不可或缺的支付工具之一。本文将详细介绍如何通过支付宝实现免费提现,帮助用户更好地管理个人财务,避免不必要的手续费支出。 ... [详细]
  • JUnit下的测试和suite
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 本文作为《WM平台上使用Sybase Anywhere 11》系列的第二篇,将继续探讨在Windows Mobile (WM) 系统中如何高效地操作Sybase Anywhere 11数据库。继上一篇关于安装与基本测试的文章之后,本篇将深入讲解数据库的具体操作方法。 ... [详细]
  • 从CodeIgniter中提取图像处理组件
    本指南旨在帮助开发者在未使用CodeIgniter框架的情况下,如何独立使用其强大的图像处理功能,包括图像尺寸调整、创建缩略图、裁剪、旋转及添加水印等。 ... [详细]
author-avatar
守护琳的心
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有