create database jurisdiction --权限数据库
go
use jurisdiction
go
--部门表
--员工表
create table Section --部门表
(
Sid int identity, --部门编号
Sname varchar(20), --部门名称
)
go
create table Staff --员工表
(
Id int identity, --员工编号
Name varchar(20), --员工名称
UserName varchar(20), --用户名
UserPwd varchar(16), --用户密码
Tel varchar(11), --手机号
Email varchar(20), --密码
Sid int --部门外键
)
select * from Staff
select * from Section
select s.Id,s.Name,s.UserName,s.UserPwd,s.Tel,s.Email,a.Sname
from Staff s join Section a
on s.Sid=a.Sid
go
/*
1.角色表
2.菜单表
3.员工角色表
4.角色菜单表
*/
--权限设计
--主管 新增 查询 查看 删除 编辑 导入 导出 上传 下载 ...
--开发组组长 新增 查询 查看 删除 编辑 导出 下载
--成员 查看 导出 下载
create table Role --角色表
(
Rid int identity, --角色编号
Rname varchar(20), --角色名称
)
selecT* from Role
go
create table Menu --菜单表
(
Mid int identity, --菜单编号
Mname varchar(20), --菜单名称
Murl varchar(50) --菜单路径
)
select * from Menu
go
create table StaffRole --员工角色
(
st_id int identity, --员工编号
st_sid int, --员工外键
st_rid int --角色外键
)
select * from StaffRole
go
create table RoleMenu --角色菜单
(
Ro_id int identity, --角色菜单编号
Ro_rid int, --角色外键
Ro_mid int --菜单外键
)
/*
权限查询: 查询 员工角色表 关联 员工表(员工角色表的员工外键关联员工表主键)
关联 角色表 (角色外键关联角色主键)
关联 角色菜单 (角色外键关联角色主键)
关联 菜单表 (菜单外键关联菜单主键)
*/
---------------测试连接--------------
select b.Name as 员工名称,c.Rname as 角色名称,e.Mname as 菜单名称
from StaffRole a
join Staff b on a.st_sid=b.Id
join Role c on a.st_rid=c.Rid
join RoleMenu d on d.Ro_rid=c.Rid
join Menu e on d.Ro_mid=e.Mid
go
---------------存储过程------------
create proc Select_select --查询部门
as
select * from Section
go
create proc Add_Section --新增部门
@Sname varchar(20)
as
insert into Section values(@Sname)
go
create proc Delete_Section --删除部门
@id int
as
delete from Section where Sid=@id
go
create proc Update_Section --编辑部门
@Sname varchar(20),
@Sid int
as
update Section set Sname=@Sname where Sid=@Sid
go
create proc Add_Staff --新增员工
@Name varchar(20),
@UserName varchar(20),
@UserPwd varchar(16),
@Tel varchar(11),
@Email varchar(20),
@Sid int
as
insert into Staff values(@Name,@UserName,@UserPwd,@Tel,@Email,@Sid)
go
create proc Select_Staff --查询员工
as
select * from Staff a join Section b on b.Sid=a.Id
go
create proc Delete_Staff --删除员工
@id int
as
delete from Staff where Id=@id
go
create proc Update_Staffs --编辑员工
(
@Name varchar(20),
@UserName varchar(20),
@UserPwd varchar(16),
@Tel varchar(11),
@Email varchar(20),
@Sid int,
@id int
)
as
update Staff set Name=@Name,UserName=@UserName,UserPwd=@UserPwd,Tel=@Tel,Email=@Email,Sid=@Sid where Id=@id
Sql数据库权限表设计思路(代码展示)
最新推荐文章于 2023-02-27 14:27:43 发布