首页 数据库 mysql教程 关于用户角色权限的设计

关于用户角色权限的设计

Jun 07, 2016 pm 03:23 PM
关于 整理 权限 用户 角色 设计

一直想整理一篇关于用户角色权限的设计,这几天通过网上资料和自己实际工作中运用到的资源把用户角色权限的数据库表设计出来。 基础表有3张: 角色表--用来记录角色名称 用户表--用来记录登录用户名称和登录密码 菜单表--用来记录菜单名称、子菜单名称 每个

一直想整理一篇关于用户角色权限的设计,这几天通过网上资料和自己实际工作中运用到的资源把用户角色权限的数据库表设计出来。

基础表有3张:

角色表--用来记录角色名称

用户表--用来记录登录用户名称和登录密码

菜单表--用来记录菜单名称、子菜单名称

每个用户会有多个角色、而一个角色也会有多个用户,即角色和用户的关系是n:m,多对多的关系。

每个角色会有多个菜单权限、每个菜单也会有多个角色拥有,即角色和菜单的关系也是n:m,多对多的关系。

所以还有有两张关联表:

角色用户对应表--用来记录角色和用户的关系

角色菜单对应表--用来记录角色和菜单的关系

这里是下载地址

http://download.csdn.net/detail/u010192842/6819561

下面是数据库表设计:

\

 

----------------------------------------------------------------
-- Author    :Yole_JZ
-- Date      :2014-01-07 7:44:00
-- Table Name:[Sys_Role]
----------------------------------------------------------------
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Sys_Role](
 [ID] [int] IDENTITY(1,1) NOT NULL,
 [RoleName] [varchar](20) NULL,
 [DeleteFlag] [int] NOT NULL CONSTRAINT [DF_Sys_Role_DeleteFlag]  DEFAULT ((0)),
 [RoleRemark] [varchar](50) NULL,
 CONSTRAINT [PK_Sys_Role] PRIMARY KEY CLUSTERED 
(
 [ID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'0:正常  1:删除' ,@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Sys_Role', @level2type=N'COLUMN', @level2name=N'DeleteFlag'
登录后复制

\

----------------------------------------------------------------
-- Author    :Yole_JZ
-- Date      :2014-01-07 7:45:00
-- Table Name:[Sys_Use]
----------------------------------------------------------------
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Sys_User](
 [ID] [int] IDENTITY(1,1) NOT NULL,
 [UserName] [varchar](20) NOT NULL,
 [UserPassword] [varchar](50) NOT NULL,
 [StaffID] [int] NOT NULL,
 [DeleteFlag] [int] NOT NULL CONSTRAINT [DF_Sys_User_DeleteFlag]  DEFAULT ((0)),
 [UserRemark] [varchar](50) NULL,
 CONSTRAINT [PK_Sys_User] PRIMARY KEY CLUSTERED 
(
 [ID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'职工信息表ID' ,@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Sys_User', @level2type=N'COLUMN', @level2name=N'StaffID'

GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'0:正常  1:删除' ,@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Sys_User', @level2type=N'COLUMN', @level2name=N'DeleteFlag'
登录后复制

\

----------------------------------------------------------------
-- Author    :Yole_JZ
-- Date      :2014-01-07 8:10:00
-- Table Name:[Sys_Menu]
----------------------------------------------------------------
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Sys_Menu](
[ID] [int] NOT NULL,
[MenuPID] [int] NULL,
[MenuName] [varchar](50) NOT NULL,
[DeleteFlag] [int] NOT NULL CONSTRAINT [DF_Sys_Menu_DeleteFlag]  DEFAULT ((0)),
[MenuRemark] [varchar](50) NULL,
CONSTRAINT [PK_Sys_Menu] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'菜单表ID' ,@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Sys_Menu', @level2type=N'COLUMN', @level2name=N'MenuPID'

GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'0:正常  1:删除' ,@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Sys_Menu', @level2type=N'COLUMN', @level2name=N'DeleteFlag'
 


\

----------------------------------------------------------------
-- Author    :Yole_JZ
-- Date      :2014-01-07 8:22:00
-- Table Name:[Sys_Role_User]
----------------------------------------------------------------
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Sys_Role_User](
[ID] [int] NOT NULL,
[RoleID] [int] NOT NULL,
[UserID] [int] NOT NULL,
[DeleteFlag] [int] NOT NULL CONSTRAINT [DF_Sys_Role_User_DeleteFlag]  DEFAULT ((0)),
[MenuRemark] [varchar](50) NULL,
CONSTRAINT [PK_Sys_Role_User] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF

GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'角色表ID' ,@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Sys_Role_User', @level2type=N'COLUMN', @level2name=N'RoleID'

GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'用户表ID' ,@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Sys_Role_User', @level2type=N'COLUMN', @level2name=N'UserID'

GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'0:正常  1:删除' ,@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Sys_Role_User', @level2type=N'COLUMN', @level2name=N'DeleteFlag'
 


\

 ----------------------------------------------------------------
-- Author    :Yole_JZ
-- Date      :2014-01-07 8:32:00
-- Table Name:[Sys_Role_Menu]
----------------------------------------------------------------
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Sys_Role_Menu](
[ID] [int] NOT NULL,
[RoleID] [int] NOT NULL,
[MenuID] [int] NOT NULL,
[PermissionType] [int] NOT NULL CONSTRAINT [DF_Sys_Role_Menu_PermissionType]  DEFAULT ((31)),
[DeleteFlag] [int] NOT NULL CONSTRAINT [DF_Sys_Role_Menu_DeleteFlag]  DEFAULT ((0)),
[MenuRemark] [varchar](50) NULL,
CONSTRAINT [PK_Sys_Role_Menu] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'角色表ID' ,@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Sys_Role_Menu', @level2type=N'COLUMN', @level2name=N'RoleID'

GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'菜单表ID' ,@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Sys_Role_Menu', @level2type=N'COLUMN', @level2name=N'MenuID'

GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'eg.1:录入 2:浏览 4:修改 8:删除 16:执行(默认所有权限)' ,@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Sys_Role_Menu', @level2type=N'COLUMN', @level2name=N'PermissionType'

GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'0:正常  1:删除' ,@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'Sys_Role_Menu', @level2type=N'COLUMN', @level2name=N'DeleteFlag'

PS.这里的权限类型没有单独做成一个表,是因为要是再加上权限表(增删改查)会是角色和菜单关系过于复杂,不利于后期的维护。

如果遇到同一个菜单需要有不同的权限,可以用权限类型来控制,例如:1:录入 2:浏览 4:修改 8:删除 16:执行(默认所有权限)

如果是增删改查权限,这个权限类型就是15(1+2+4+8=15),当然这样做会有弊端,例如有修改权限就会相应的有浏览权限,会出现权限包含的情况。遇到这样的情况需要判断一下即可。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何用小红书号查找用户?能查到手机号吗? 如何用小红书号查找用户?能查到手机号吗? Mar 22, 2024 am 08:40 AM

随着社交媒体的迅速发展,小红书已经成为了备受青睐的社交平台之一。用户可以通过创建小红书号来展示个人身份,并与其他用户交流互动。如果你需要查找某个用户的小红书号码,可以按照以下简单步骤进行操作。一、如何用小红书号查找用户?1.打开小红书APP,点击右下角的“发现”按钮,然后选择“笔记”选项。2.在笔记列表中,找到你想查找的用户发布的那篇笔记。点击进入笔记详情页。3.在笔记详情页中,点击用户头像下方的“关注”按钮,即可进入该用户的个人主页。4.在用户个人主页右上角,点击三个点按钮,然后选择“个人信息

以超级用户身份登录Ubuntu 以超级用户身份登录Ubuntu Mar 20, 2024 am 10:55 AM

在Ubuntu系统中,root用户通常是禁用状态的。要激活root用户,可以使用passwd命令设置密码,然后使用su-命令以root身份登录。根用户是具有系统管理权限且不受限制的用户。他拥有访问和修改文件、用户管理、软件安装和删除,以及系统配置更改等权限。根用户与普通用户有着明显的区别,根用户拥有系统中最高的权限和更广泛的控制权。根用户可以执行重要的系统命令和编辑系统文件,而普通用户则无法做到这一点。在本指南中,我将探讨Ubuntu根用户,如何以根用户身份登录,以及它与普通用户的不同之处。注意

一键开启root权限(快速获取root权限) 一键开启root权限(快速获取root权限) Jun 02, 2024 pm 05:32 PM

可以让用户对系统进行更深入的操作和定制,root权限是一种管理员权限,在Android系统中。获取root权限通常需要一系列繁琐的步骤,对于普通用户来说可能不太友好、然而。通过一键开启root权限,本文将介绍一种简单而有效的方法,帮助用户轻松获取系统权限。了解root权限的重要性及风险拥有更大的自由度,root权限可以让用户完全控制手机系统。加强安全控制等,定制主题、用户可以删除预装应用。比如误删系统文件导致系统崩溃,过度使用root权限也存在风险、不慎安装恶意软件等,然而。在使用root权限前

苍翼混沌效应有几个角色 苍翼混沌效应有几个角色 Mar 21, 2024 pm 10:56 PM

《苍翼混沌效应》拥有众多角色,每位角色均拥有独特的身份和背景故事。为此,小编特为各位玩家整理了苍翼混沌效应角色介绍。苍翼混沌效应有几个角色答:有7个角色。1、【死神】拉格纳·查·布拉德艾奇(外号RG、尼桑)其与弟弟、妹妹曾由教堂修女抚养,在一天,六英雄之一的反派闯入,杀害修女,烧毁教堂,带走妹妹,留下弟弟“事象兵器”冰剑雪女。2、诺爱尔·梵蜜利昂梵蜜利昂家的养女,与拉格纳的妹妹长得几乎一样。毕业后进入统御机关工作,作为拉格纳弟弟的秘书官。3、λ-11统称拉姆达、十一妹。原开发者放弃后,九重救下并

复古潮流!HMD与喜力联合推出翻盖手机:透明外壳设计 复古潮流!HMD与喜力联合推出翻盖手机:透明外壳设计 Apr 17, 2024 pm 06:50 PM

4月17日消息,HMD携手知名啤酒品牌喜力以及创意公司Bodega,联袂推出了一款别具一格的翻盖手机——无聊手机(TheBoringPhone)。这款手机不仅在设计上充满新意,更在功能上返璞归真,旨在引领人们回归真实的人际交往,享受与朋友畅饮的纯粹时光。无聊手机采用了独特的透明翻盖设计,展现出一种简约而不失优雅的美感。其内部配备了2.8英寸QVGA显示屏,外部则是一块1.77英寸的显示屏,为用户提供了基本的视觉交互体验。在摄影方面,虽然仅搭载了30万像素的摄像头,但足以应对日常的简

首发899元 中兴5G随身Wi-Fi U50S开售:最高网速500Mbps 首发899元 中兴5G随身Wi-Fi U50S开售:最高网速500Mbps Apr 26, 2024 pm 03:46 PM

4月26日消息,中兴5G随身Wi-FiU50S目前已经正式开售,首发899元。外观设计上,中兴U50S随身Wi-Fi简约时尚,易于手持和包装。其尺寸为159/73/18mm,携带方便,让您随时随地畅享5G高速网络,实现畅行无阻的移动办公与娱乐体验。中兴5G随身Wi-FiU50S该设备支持先进的Wi-Fi6协议,峰值速率高达1800Mbps,依托骁龙X55高性能5G平台,为用户提供极速的网络体验。不仅支持5G双模SA+NSA网络环境和Sub-6GHz频段,实测网速更可达惊人的500Mbps,轻松满

台电M50 Mini小平板来了:8.7寸IPS屏、5000mAh电池 台电M50 Mini小平板来了:8.7寸IPS屏、5000mAh电池 Apr 04, 2024 am 08:31 AM

4月3日消息,台电即将推出的M50Mini平板电脑是一款功能丰富、性能强大的设备。这款8英寸小平板新品搭载了8.7英寸的IPS屏幕,为用户提供了出色的视觉体验。其金属机身设计不仅美观,还增强了设备的耐用性。在性能方面,M50Mini搭载了紫光展锐T606八核处理器,拥有两个A75核心和六个A55核心,确保了流畅且高效的运行体验。同时,该平板还配备了6GB+128GB的存储方案,并支持8GB内存扩展,满足了用户对于存储和多任务处理的需求。在续航上,M50Mini配备了5000mAh的电池,支持Ty

荣耀Magic V3首发AI离焦护眼技术:有效缓解近视发展 荣耀Magic V3首发AI离焦护眼技术:有效缓解近视发展 Jul 18, 2024 am 09:27 AM

7月12日消息,荣耀MagicV3系列今日正式发布,搭载全新荣耀视力舒缓绿洲护眼屏,在屏幕本身具备高规格和高素质的同时,还开创性的引入AI主动式护眼技术。据悉,传统的缓解近视的方式是“近视镜”,近视眼镜度数均匀分布,保证了视线中心区域成像在视网膜之上,但周边区域成像在视网膜后,视网膜感应到成像在后,促进眼轴向后生长,从而使度数加深。目前主要的缓解近视发展的方式之一是“离焦镜”,其中心区域度数正常,周边区域通过光学设计分区调整,从而使周边区域成像落在视网膜前,

See all articles