Sql数据库权限表设计思路(代码展示)

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


  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值