web前端从Oracle数据库加载动态菜单所用到的数据表

当我们在使用一款软件或者使用某某管理系统的时候,都会使用到分级菜单来给我们清晰的展示出其功能模块。而这些分级菜单呢,是需要通过对数据库的调用才能展示给我们的。今天,我就主要介绍一下制作分级菜单我们所要用到的数据表。

1、菜单表

create table menu(
 menu_id   number(10) primary key,
 menu_name   varchar(30),
 menu_url   varchar(200),
 parent_menu_id   number(10)
); 

/*如果菜单是一级菜单,p_menu_id为0*/
insert into menu values(1,'图书管理','',0);
insert into menu values(2,'订单管理','',0);
insert into menu values(3,'用户管理','',0);
insert into menu values(4,'系统设置','',0);
insert into menu values(5,'图书展示','/system/updatePassword.action',1);
insert into menu values(6,'新增图书','',1);
insert into menu values(7,'订单分类','',2);
insert into menu values(8,'新建订单','',2);
insert into menu values(9,'用户信息','',3);
insert into menu values(10,'用户信息设置','',3);
insert into menu values(11,'管理员信息','',4);
insert into menu values(12,'管理员权限设置','',4); 

2、角色表

create table role(
 role_id number(10) primary key,
 role_name varchar(20)
);
insert into role values(1,'管理员');
insert into role values(2,'销售总监'); 

3、用户表

create table users(
user_id number(30),
user_name varchar2(40),
user_password varchar2(40),
user_sex char(3),
user_phone varchar2(50),
user_email varchar2(60),
user_img varchar2(40)
);
create sequence seq_u;
insert into users(user_id,
         user_name,
         user_password,
         user_sex,
         user_phone,
         user_email,
         user_img)values(seq_u.nextval,'黄飞鸿','1111qa','男','15000102345','1234567@qq.com',null); 

4、角色菜单表

create table role_menu(
 id number(10) primary key,
 role_id number(10),
 menu_id number(10)
);
/*录入角色和菜单的初始数据*/
insert into role_menu values(1,1,1);
insert into role_menu values(2,1,2);
insert into role_menu values(3,1,3);
insert into role_menu values(4,1,4);
insert into role_menu values(5,1,5);
insert into role_menu values(6,1,6);
insert into role_menu values(7,1,7);
insert into role_menu values(8,1,8);
insert into role_menu values(9,1,9);
insert into role_menu values(10,1,10);
insert into role_menu values(11,1,11);
insert into role_menu values(12,1,12); 

5、角色用户表

create table role_user(
 id number(10) primary key,
 role_id number(10),
 user_id number(10)
);
/*录入角色和菜单的初始数据*/
insert into role_user values(1,1,1);
insert into role_user values(2,2,2); 

数据表建好之后,前端通过

select distinct *
from users u inner join role_user ru
    on u.user_id = ru.user_id inner join role_menu rm on ru.role_id =
    rm.role_id inner join menu m on m.menu_id = rm.menu_id
    where u.user_id =1 

这么一条SQL语句即可调用用户ID所对应的系统菜单。

可显示如上:

效果图:

总结

以上所述是小编给大家介绍的web前端从Oracle数据库加载动态菜单所用到的数据表,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • Oracle数据加载和卸载的实现方法

    在日常工作中:经常会遇到这样的需求: Oracle 数据表跟文本或者文件格式进行交互:即将指定文件内容导入对应的 Oracle 数据表中:或者从 Oracle 数据表导出. 其他数据库中的表跟Oracle数据库进行交互. 若是少量数据:可选择的解决方案有很多.常用的用 Pl/SQL developer工具,或者手动转换为 INSERT 语句,或者通过API.但数据量大:用上面的方法效率太烂了.本文来说说 Oracle 数据的加载和卸载. Oracle中的DBLINK Oracle加载数据-外部表

  • 升级和卸载Oracle数据库软件的命令整理

    查看版本号 sqlplus / as sysdba >select * from v$version; 备份orcl数据库 export ORACLE_SID=orcl rman targer / >backup full database plus archivelog; 升级 ./runInstall 安装升级包 sqlplus / as sysdba >startup upgrade >@$ORACLE_HOME/rdbms/admin/catupgrd.sql >sh

  • oracle停止数据库后linux完全卸载oracle的详细步骤

    1.使用SQL*PLUS停止数据库 复制代码 代码如下: $ sqlplus /nolog SQL> connect / as sysdba SQL> shutdown [immediate] SQL> exit 2.停止Listener 复制代码 代码如下: $ lsnrctl stop 3.停止HTTP服务 复制代码 代码如下: # service httpd stop 4.用su或者重新登录到root(如想重新安装可以保留oracle用户,省得输入环境变量了) 5.将安装目录删除

  • 完美卸载Oracle数据库

    最近因为要写一个项目的接口,需要远程的连接oracle数据库,刚开始的时候因为我本地只装了MySQL,所以用就连接了本地MySQL,接口大体完事有在tomcat中测试了下,也能跑通,但是后来又要改数据库,所以就想安装一个本地的oracle测试一下,这一安装就是一个下午外带一个晚上啊,所以把这个血泪史分享一下.安装过oracle的同学相信都卸载过oracle(这句话听着挺有毛病,但是真正操作过的人就不会觉得奇怪了),基本上每次安装oracle都会出现这样或那样的问题,随意卸载oracle变得非常重

  • 安装Oracle加载数据库错误areasQueries的解决

    正在看的ORACLE教程是:安装Oracle加载数据库错误areasQueries的解决.注意:安装时要保证Oracle安装目录不能带有中文字符 (如果第一次安装出现"加载数据库错误areasQueries"的错误,一般是因为Oracle安装目录带有中文字符的目录) 1. 停止所有关于Oracle的服务 2. 删除Oracle安装目录,主要分布在两个地方(如D盘跟目录下面以及C盘Program Files下面),删除时提示无法删除的错误,重新启动机器重新删除就可以了 3. 删除注册表里

  • Oracle 11g数据库安装与卸载的方法图解

    一.Oracle 11g安装 安装之前要先确定自己的电脑配置,以windows为例,如果是win7以下系统如xp等,可以选择Oracle 10g.因为10g的程序文件只有200多兆,而11g及达到了2G,具体文件官方下载路径已经找不到了,只能去一些软件下载平台下载.如果是win7最好采用11g,否则很可能10g出现不兼容安装不成功的情况,本文以win7为例. Oracle 11g官方下载地址如下: http://www.oracle.com/technetwork/database/enterp

  • Oracle 高速批量数据加载工具sql*loader使用说明

    SQL*Loader(SQLLDR)是Oracle的高速批量数据加载工具.这是一个非常有用的工具,可用于多种平面文件格式向Oralce数据库中加载数据.SQLLDR可以在极短的时间内加载数量庞大的数据.它有两种操作模式. 传统路径:(conventional path):SQLLDR会利用SQL插入为我们加载数据. 直接路径(direct path):采用这种模式,SQLLDR不使用SQL:而是直接格式化数据库块. 利用直接路径加载,你能从一个平面文件读数据,并将其直接写至格式化的数据库块,而绕

  • web前端从Oracle数据库加载动态菜单所用到的数据表

    当我们在使用一款软件或者使用某某管理系统的时候,都会使用到分级菜单来给我们清晰的展示出其功能模块.而这些分级菜单呢,是需要通过对数据库的调用才能展示给我们的.今天,我就主要介绍一下制作分级菜单我们所要用到的数据表. 1.菜单表 create table menu( menu_id number(10) primary key, menu_name varchar(30), menu_url varchar(200), parent_menu_id number(10) ); /*如果菜单是一级菜

  • 详解Vue3如何加载动态菜单

    目录 1. 整体思路 2. 实现细节 2.1 加载细节 2.2 getInfo 2.3 generateRoutes 1. 整体思路 首先我们来梳理下整体上的实现思路,首先一点:整体思路和 vhr 一模一样. 考虑到有的小伙伴可能已经忘记 vhr 中前端动态菜单的实现思路了,因此本文再和大家分析一下. 为了确保在所有的 .vue 文件中都能访问到到菜单数据,所以选择将菜单数据存入 vuex 中,vuex 是 vue 中一个存储数据的公共地方,所有的 .vue 文件都可以从 vuex 中读取到数据

  • vue动态加载SVG文件并修改节点数据的操作代码

    先上一个马赛克图片叭. 接领导需求,动态实现电路图, 并附带放大.缩小功能. 以及不同的回路点击能弹窗显示相关节点的更多信息, 通俗一点讲: 随着用户点击放大和缩小, 点击位置保持不变,而且能实现点击交互. 初接触的时候,觉得根本没法下手呀,说说自己的思路叭, 从随着用户点击放大缩小位置不变,想到了SVG 但是需要动态加载进来呀,而且还需要需求不同节点的电流值, 从放大缩小来看, 首先想到的是 D3 在集合领导给的部分相关资料 综上: 进行了可行性的方案试探,也完成了整个功能的开发. 且听我细细

  • Linux程序运行时加载动态库失败的解决方法

    Linux下不能加载动态库问题 当出现下边异常情况 ./test: error while loading shared libraries: libmfs_open.so: cannot open shared object file: No such file or directory 若动态库的路径在(/usr/cluster/.share/lib) 解决办法: 方法一.在/etc/ld.so.conf文件中添加路径,vi /etc/ld.so.conf 添加下边内容 include ld

  • 基于springMVC web.xml中的配置加载顺序

    目录 springMVC web.xml中的配置加载顺序 1.Spring上下文环境的配置文件 2.SpringMVC配置文件 加载顺序是 web.xml加载顺序及Spring包扫描注意 1.web.xml文件中配置文件加载顺序 2.SpringMVC配置事务管理时 springMVC web.xml中的配置加载顺序 在这里就不详细说web.xml的文件中的具体配置,就简单说明一下其中配置信息的加载顺序: 在web.xml文件中元素的加载顺序与它们在 web.xml 文件中的先后顺序无关. 加载

  • Angular懒加载动态创建显示该模块下声明的组件

    目录 环境: Angular 13.x.x 新建一个angular项目 懒加载工具栏组件 toolbar.module.ts toolbar.component.ts toolbar.component.html app.component.ts 环境: Angular 13.x.x angular中支持可以通过路由来懒加载某些页面模块已达到减少首屏尺寸, 提高首屏加载速度的目的. 但是这种通过路由的方式有时候是无法满足需求的. 比如, 点击一个按钮后显示一行工具栏, 这个工具栏组件我不希望它默

  • 前端JS图片懒加载原理方案详解

    目录 背景 原理 方案 方案一:img的loading属性设为“lazy” 使用方法 优点 兼容性 缺点 方案二:通过offsetTop来计算是否在可视区域内 优化 优点 缺点 方案三:通过getBoundingClientRect来计算是否在可视区域内 方案四:使用IntersectionObserver来判断是否在可视区域内 兼容性 优点 缺点 问题 布局抖动 响应式图片 SEO不友好 插件 背景 懒加载经常出现在前端面试中,是前端性能优化的常用技巧.懒加载也叫延迟加载,把非关键资源先不加载

  • jQuery zTree加载树形菜单功能

    由于项目中需要设计树形菜单功能,于是百度找相关资料,发现zTree方面的资料不少,觉得挺不错,而且zTree官方也有API文档,介绍的非常详细,经过一番捣腾之后,终于给弄出来了,所以便记下来,也算是学习zTree的一个总结吧. zTree的介绍: 1.zTree 是利用 JQuery 的核心代码,实现一套能完成大部分常用功能的 Tree 插件 2.zTree v3.0 将核心代码按照功能进行了分割,不需要的代码可以不用加载 3.采用了 延迟加载 技术,上万节点轻松加载,即使在 IE6 下也能基本

  • js前端实现图片懒加载(lazyload)的两种方式

    在实际的项目开发中,我们通常会遇见这样的场景:一个页面有很多图片,而首屏出现的图片大概就一两张,那么我们还要一次性把所有图片都加载出来吗?显然这是愚蠢的,不仅影响页面渲染速度,还浪费带宽.这也就是们通常所说的首屏加载,技术上现实其中要用的技术就是图片懒加载--到可视区域再加载. 思路: 将页面里所有img属性src属性用data-xx代替,当页面滚动直至此图片出现在可视区域时,用js取到该图片的data-xx的值赋给src. 关于各种宽高: 页可见区域宽: document.body.clien

  • linux生成(加载)动态库静态库和加载示例方法

    动态库的生成: 1./*mysum.c*/ 复制代码 代码如下: #include <stdio.h>#include "src.h" int sum(int a,int b){return (a+b);} 2./*mysum.h*/ 复制代码 代码如下: #ifndef __SRC_H__#define __SRC_H__ int sum(int a,int b); #endif 3./*main.c*/ 复制代码 代码如下: #include <stdio.h&g

随机推荐