用户、角色、权限数据库设计

转自:https://link.jianshu.com/?t=http://blog.itpub.net/16436858/viewspace-627049

原创 Linux操作系统 iSQlServer 2010-02-08 15:20:32

权限管理

权限管理,主要是人员和权限之间的关系,但是如果让人员直接和权限打交道,那么权限的赋值、权限的撤销以及权限的变动会非常的麻烦,这样引入了,角色,给角色赋权限,然后给用户分配角色。

这个设计主要涉及6张表,

用户表,(用于存储用户的所有信息)

权限表,(用于存储所有的权限)

角色表,(用于存储所有的角色)

用户和角色的关联表,(用户和角色的关联)

角色和权限的关联表,(角色和权限的关联)

菜单表,(里面关联了权限,主要是现实用的)

用户表


代码

CREATE TABLE [dbo].[Users](

    [UserID] [int] IDENTITY(1,1) NOT NULL,

    [UserName] [nvarchar](50) primary key,--帐号

    [Password] [nvarchar](50) ,

    [UserDspName] [nvarchar](50) ,

    [Sex] [char](1),

    [Birthday] [datetime],

    [Phone] [nvarchar](20)  ,

    [Email] [nvarchar](100),

    [EmployeeID] [nvarchar](20) ,

    [Activity] [bit],--是否可用

    [UserType] [char](2) ,

    [Style] [nvarchar](50)

)

权限表:

CREATE TABLE [dbo].[Permission](

    [PermissionID] int identity,

    [Description] [nvarchar](50) --权限名称

)

角色表:


CREATE TABLE [dbo].[Roles](

    [RoleID] [int] IDENTITY,

    [Description] [nvarchar](200)--角色名称

)



用户和角色的关联表:

代码

CREATE TABLE [dbo].[UserRoles](

    [UserID] [int] NOT NULL,--用户ID

    [RoleID] [int] not null ,--权限ID

CONSTRAINT [PK_UserRoles] PRIMARY KEY CLUSTERED

(

    [UserID] ASC,

    [RoleID] ASC

)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

角色和权限的关联表:


代码

CREATE TABLE [dbo].[RolePermissions](

    [RoleID] int  NOT NULL,--角色ID

    [PermissionID]int NOT NULL,--权限ID

CONSTRAINT [PK_RolePermissions] PRIMARY KEY CLUSTERED

(

    [RoleID] ASC,

    [PermissionID] ASC

)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]


菜单表:


代码

CREATE TABLE [dbo].[menu](

    [ID] [int] IDENTITY(1,1) NOT NULL,

    [TextCH] [nvarchar](100)  NULL,--菜单的中文显示

    [TextEN] [nvarchar](200)  NULL,--菜单的英文名称

    [ParentID] [int] NULL,--父节点

    [orderID] [int] NULL,--同一个父节点下面的排序

    [Url] [nvarchar](200) ,--菜单对于的权限

    [PermissionID] [int] NULL,--权限ID

    [ImageUrl] [nvarchar](50) NULL--菜单图片链接

) ON [PRIMARY]

以上便是所有的数据库结构,代码正在实现中;

最后权限的最终呈现和表现是通过菜单来实现的,个人感觉粒度太大了(最小是页面),现在我想知道能否将权限加到某一个按钮上面,请大家指点

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 2017/3/14 RDBMS:关系型数据库管理系统 关系模型独立于语言 SQL有几种不同类型的语言:数据定义语言...
    ancherl阅读 1,659评论 0 6
  • 什么是SQL数据库: SQL是Structured Query Language(结构化查询语言)的缩写。SQL是...
    西贝巴巴阅读 1,857评论 0 10
  • MySQL语句大全(超详细) 1、说明:创建数据库 CREATE DATABASE database-name 2...
    Ncompass阅读 318评论 0 1
  • 有一种女人,叫做金牛座。 我已经不知道谁是我认识的第一个金牛座女生,我也想应该从初中后开始吧,是那个时候开始关注星...
    云霄上的蓝枫子阅读 476评论 0 1
  • 断断续续,过了小半年才把这本书看完,这本书真的是一步一转折,从头到尾都没猜出来,原来结局是这样
    YaMine_17阅读 387评论 0 0