数据库管理权限
来源:互联网 发布:广电网络市场营销感悟 编辑:程序博客网 时间:2024/05/24 03:36
一.用户角色多对多关联
1.角色表
create table role(
id int auto_increment primary key,
name varchar(100)
);
2.用户表
create table user_role(
id int auto_increment primary key,
name varchar(100)
);
3.角色用户中间表
create table user_role(
id int auto_increment primary key,
user_id int,
role_id int
);
4.查询所有的用户,以及他所对应的角色
select u.id,u.name,r.name from user u left join user_role ur on ur.user_id=u.id left join role r on ur.role_id=r.id;
5.查询所有的用户,以及每个用户所拥有的角色数量
select u.id,u.name,count(r.id) from user u left join user_role ur on ur.user_id=u.id left join role r on ur.role_id=r.id group by u.id;
6.查询所有的角色,以及每个角色所包含的用户数量
select r.id,r.name,count(u.id) from role r left join user_role ur on ur.role_id=r.id left join user u on ur.user_id=u.id group by r.id;
二.角色跟功能多对多关系
1.创建功能表
create table function(
id int auto_increment primary key,
name varchar(100)
);
2.创建角色功能中间表
create table role_func(
id int auto_increment primary key,
role_id int,
func_id int
);
3.查询所有的角色,以及他所对应的功能
select r.id,r.name,f.name from role r left join role_func rf on r.id=rf.role_id left join function f on f.id=rf.func_id;
4.查询所有的用户,以及他所能使用的所有功能
select distinct u.id,u.name,f.name from user u left join user_role ur on ur.user_id=u.id left join role r on ur.role_id=r.id left join role_func rf on rf.role_id=r.id left join function f on f.id=rf.func_id order by u.id;
5.查询所有的用户,以及他所能使用的功能数量
select u.id,u.name,count(distinct f.id) from user u left join user_role ur on ur.user_id=u.id left join role r on ur.role_id=r.id left join role_func rf on rf.role_id=r.id left join function f on f.id=rf.func_id group by u.id order by u.id;
三.商品类目解决方案
1.类别表
create table category(
id bigint auto_increment primary key,
parent_id smallint,
name varchar(100)
);
+----+------------------+--------------+
|id |parent_id | name |
+----+------------------+--------------+
| 1 | NULL | 电脑办公 |
| 2 | NULL | 办公文具 |
| 3 | 1 | 电脑整机 |
| 4 | 1 | 电脑配件 |
| 5 | 2 | 办公设备 |
| 6 | 2 | 文具耗材 |
| 7 | 3 | 笔记本 |
| 8 | 3 | 台式机 |
| 9 | 4 | 显示器 |
| 10 | 4 | 机箱 |
| 11 | 5 | 打印机 |
| 12 | 5 | 点钞机 |
| 13 | 6 | 学生文具 |
| 14 | 6 | 纸类 |
+----+------------------+--------------+
2.商品表
create table item(
id bigint auto_increment primary key,
category_id smallint,
name varchar(100),
price decimal(11,4),
stock int,
image varchar(500),
detail varchar(500),
upload_time timestamp
);
3.查询所有的分类,以及他们的父分类
select c.id one,c.name,p.id two,p.name from category c left join category p on c.parent_id=p.id;
4.查询所有的二级分类,以及他们的父分类(一级父类为空)
select c.id one,c.name,p.id two,p.name from category c left join category p on c.parent_id=p.id where p.id in(select id from category where parent_id is null);
5.查询所有的三级分类,以及他们的父分类
select c.id one,c.name,p.id two,p.name from category c left join category p on c.parent_id=p.id where c.id in(select category_id from item);
6.查询所有的三级分类,以及他们的父分类二级分类,还有一级分类
1.角色表
create table role(
id int auto_increment primary key,
name varchar(100)
);
2.用户表
create table user_role(
id int auto_increment primary key,
name varchar(100)
);
3.角色用户中间表
create table user_role(
id int auto_increment primary key,
user_id int,
role_id int
);
4.查询所有的用户,以及他所对应的角色
select u.id,u.name,r.name from user u left join user_role ur on ur.user_id=u.id left join role r on ur.role_id=r.id;
5.查询所有的用户,以及每个用户所拥有的角色数量
select u.id,u.name,count(r.id) from user u left join user_role ur on ur.user_id=u.id left join role r on ur.role_id=r.id group by u.id;
6.查询所有的角色,以及每个角色所包含的用户数量
select r.id,r.name,count(u.id) from role r left join user_role ur on ur.role_id=r.id left join user u on ur.user_id=u.id group by r.id;
二.角色跟功能多对多关系
1.创建功能表
create table function(
id int auto_increment primary key,
name varchar(100)
);
2.创建角色功能中间表
create table role_func(
id int auto_increment primary key,
role_id int,
func_id int
);
3.查询所有的角色,以及他所对应的功能
select r.id,r.name,f.name from role r left join role_func rf on r.id=rf.role_id left join function f on f.id=rf.func_id;
4.查询所有的用户,以及他所能使用的所有功能
select distinct u.id,u.name,f.name from user u left join user_role ur on ur.user_id=u.id left join role r on ur.role_id=r.id left join role_func rf on rf.role_id=r.id left join function f on f.id=rf.func_id order by u.id;
5.查询所有的用户,以及他所能使用的功能数量
select u.id,u.name,count(distinct f.id) from user u left join user_role ur on ur.user_id=u.id left join role r on ur.role_id=r.id left join role_func rf on rf.role_id=r.id left join function f on f.id=rf.func_id group by u.id order by u.id;
三.商品类目解决方案
1.类别表
create table category(
id bigint auto_increment primary key,
parent_id smallint,
name varchar(100)
);
+----+------------------+--------------+
|id |parent_id | name |
+----+------------------+--------------+
| 1 | NULL | 电脑办公 |
| 2 | NULL | 办公文具 |
| 3 | 1 | 电脑整机 |
| 4 | 1 | 电脑配件 |
| 5 | 2 | 办公设备 |
| 6 | 2 | 文具耗材 |
| 7 | 3 | 笔记本 |
| 8 | 3 | 台式机 |
| 9 | 4 | 显示器 |
| 10 | 4 | 机箱 |
| 11 | 5 | 打印机 |
| 12 | 5 | 点钞机 |
| 13 | 6 | 学生文具 |
| 14 | 6 | 纸类 |
+----+------------------+--------------+
2.商品表
create table item(
id bigint auto_increment primary key,
category_id smallint,
name varchar(100),
price decimal(11,4),
stock int,
image varchar(500),
detail varchar(500),
upload_time timestamp
);
3.查询所有的分类,以及他们的父分类
select c.id one,c.name,p.id two,p.name from category c left join category p on c.parent_id=p.id;
4.查询所有的二级分类,以及他们的父分类(一级父类为空)
select c.id one,c.name,p.id two,p.name from category c left join category p on c.parent_id=p.id where p.id in(select id from category where parent_id is null);
5.查询所有的三级分类,以及他们的父分类
select c.id one,c.name,p.id two,p.name from category c left join category p on c.parent_id=p.id where c.id in(select category_id from item);
6.查询所有的三级分类,以及他们的父分类二级分类,还有一级分类
select c.id one,c.name,p.id two,p.name,g.id three,g.name from category c left join category p on c.parent_id=p.id left join category g on p.parent_id=g.id where c.id in(select category_id from item);
7.查询所有商品的分类树
select concat(g.name,'>',p.name,'>',c.name) 分类树,i.id 商品ID,i.name 商品名称,i.price 商品单价,i.stock 商品库存,i.image 商品图片
from item i left join category c on i.category_id=c.id left join category p on c.parent_id=p.id left join category g on p.parent_id=g.id where c.id in(select category_id from item);
阅读全文
0 0
- 数据库管理权限
- oracle数据库管理--管理权限和角色
- mysql添加账号的数据库管理权限
- ecshop数据库表3(ecs_admin_action)管理权限分配表
- oracle管理权限
- TrustedInstaller管理权限
- 求救:MSSQL系统管理员管理权限丢了,sa密码又忘了,又没有sysadmin权限的用户,怎么恢复系统管理员对数据库的管理权限?
- 如何分配临时管理权限
- 工作流管理权限分析
- oracle管理权限与角色
- Oracle之管理权限
- 利用spring AOP管理权限
- 管理权限和角色
- 用户管理权限笔记
- linux文件管理权限设置
- vs2008设置管理权限debug
- 管理权限和角色---角色
- java用户管理权限
- 29.笔记 MySQL学习——使用分区表
- Python3.6下Django使用mysql
- 30.笔记 MySQL学习——删除表
- [成长] 退役?再见~OI
- TCP
- 数据库管理权限
- python 自动化模块selenium + pyauotogui 模块结合实现有flash显示自动化运维
- 1、初识c语言总结
- 机器学习系列(二)k-近邻算法(1)
- 31.笔记 MySQL学习——索引表的存储
- 第二章 Linux的安装
- 别人家的技术leader是如何建设团队、管理人员、沟通工作的?
- 通过脚本的方式杀tomcat进程(shell脚本),shell中将一个文件的内容读出赋值给一个变量
- dict初始化、OrderedDict使用