当我们在使用一款软件或者使用某某管理系统的时候,都会使用到分级菜单来给我们清晰的展示出其功能模块。而这些分级菜单呢,是需要通过对数据库的调用才能展示给我们的。今天,我就主要介绍一下制作分级菜单我们所要用到的数据表。
1、菜单表
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
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、角色表
1
2
3
4
5
6
|
create table role(
role_id number(10) primary key ,
role_name varchar (20)
);
insert into role values (1, '管理员' );
insert into role values (2, '销售总监' );
|
3、用户表
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
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、角色菜单表
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
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、角色用户表
1
2
3
4
5
6
7
8
|
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);
|
数据表建好之后,前端通过
1
2
3
4
5
|
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数据库加载动态菜单所用到的数据表,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:https://blog.csdn.net/Blade_/article/details/79806704