我只是进行了一个学习,整理

设计目标

设计一个灵活、通用、方便的权限管理系统

一、相关概念

1.权限

       系统的所有权限信息。权限具有上下级关系,是一个树状的结构。
例如:
  系统管理
    用户管理
      查看用户
        新增用户
          修改用户
            删除用户
       对于上面的每个权限,又存在两种情况,一个是只是可访问,另一种是可授权,例如用户只被授予“可访问”,那么他就不能将他所具有的这个权限分配给其他人

2.用户

应用系统的具体操作者,用户可以自己拥有权限信息,可以归属于0~n个角色,可属于0~n个组。他的权限集是自身具有的权限、所属各角色具有的权限、所属各组具有的权限的合集。它与权限、角色、组之间的关系都是n对n的关系。

3.角色

为了对多个拥有相似权限的用户进行分类管理,定义了角色的概念。例如系统管理员、管理员、用户、访客等角色。角色具有上下级关系,可以形成树状视图,父级角色的权限是自身及它的所有子角色的权限的综合。父级角色的用户、父级角色的组同理可推。

4.组

       为了更好地管理用户,对用户进行分组归类,简称为用户分组。组也具有上下级关系,可以形成树状视图。在实际情况中,我们知道,组也可以具有自己的角色信息、权限信息。

       例如QQ用户群,一个群可以有多个用户,一个用户也可以加入多个群。每个群具有自己的权限信息。例如查看群共享。QQ群也可以具有自己的角色信息,例如普通群、高级群等。

四个对象之间的关系:

系统权限管理服务架构 权限管理系统权限设置_设计

二、数据库设计

1.本系统至少需要十张表,分别为:

  • 权限表
  • 用户表
  • 角色表
  • 组表
  • 用户权限关联表
  • 用户角色关联表
  • 角色权限关联表
  • 组权限关联表
  • 组角色关联表
  • 用户属组关联表

2.PowerDesigner中的各表

PowerDesigner中设计文件下载地址:

系统权限管理服务架构 权限管理系统权限设置_系统权限管理服务架构_02

3.表结构设计

3.1 用户表(TUser)

字段名称

字段

类型

备注

记录标识

tu_id

bigint

pk, not null

所属组织

to_id

bigint

fk, not null

登录帐号

login_name

varchar(64)

not null

用户密码

password

varchar(64)

not null

用户姓名

vsername

varchar(64)

not null

手机号

mobile

varchar(20)

电子邮箱

email

varchar(64)

创建时间

gen_time

datetime

not null

登录时间

login_time

datetime

上次登录时间

last_login_time

datetime

登录次数

count

bigint

not null

3.2 角色表(TRole)

字段名称

字段

类型

备注

角色ID

tr_id

bigint

pk, not null

父级角色ID

parent_tr_id

bigint

not null

角色名称

role_name

varchar(64)

not null

创建时间

gen_time

datetime

not null

角色描述

description

varchar(200)

3.3权限表(TRight)

字段名称

字段

类型

备注

权限ID

tr_id

bigint

pk, not null

父权限

parent_tr_id

bigint

not null

权限名称

right_name

varchar(64)

not null

权限描述

description

varchar(200)

3.4 组表(TGroup)

字段名称

字段

类型

备注

组ID

tg_id

bigint

pk, not null

组名称

group_name

varchar(64)

not null

父组

parent_tg_id

bigint

not null

创建时间

gen_time

datetime

not null

组描述

description

varchar(200)

3.5 角色权限表(TRoleRightRelation)

字段名称

字段

类型

备注

记录标识

trr_id

bigint

pk, not null

角色

Role_id

bigint

fk, not null

权限

right_id

bigint

fk, not null

权限类型

right_type

int

not null(0:可访问,1:可授权)

3.6 组权限表(TGroupRightRelation)

字段名称

字段

类型

备注

记录标识

tgr_id

bigint

pk, not null


tg_id

bigint

fk, not null

权限

tr_id

bigint

fk, not null

权限类型

right_type

int

not null(0:可访问,1:可授权)

3.7 组角色表(TGroupRoleRelation)

字段名称

字段

类型

备注

记录标识

tgr_id

bigint

pk, not null


tg_id

bigint

fk, not null

角色

tr_id

bigint

pk, not null

3.8 用户权限表(TUserRightRelation)

字段名称

字段

类型

备注

记录标识

tur_id

bigint

pk, not null

用户

tu_id

bigint

fk, not null

权限

tr_id

bigint

fk, not null

权限类型

right_type

int

not null(0:可访问,1:可授权)

3.9 用户角色表(TUserRoleRelation)

字段名称

字段

类型

备注

记录标识

tur_id

bigint

pk, not null

用户

tu_id

bigint

fk, not null

角色

tr_id

bigint

fk, not null

3.10 用户组表(TUserGroupRelation)

字段名称

字段

类型

备注

记录标识

tug_id

bigint

pk, not null

用户

tu_id

bigint

fk, not null


tg_id

bigint

fk, not null

3.11组织表(TOrganization)

字段名称

字段

类型

备注

组织id

to_id

bigint

pk, not null

父组

parent_to_id

bigint

not null

组织名称

org_name

varchar(64)

not null

创建时间

gen_time

datetime

not null

组织描述

description

varchar(200)

3.12操作日志表(TLog)

字段名称

字段

类型

备注

日志ID

log_id

bigint

pk, not null

操作类型

op_type

int

not null

操作内容

content

varchar(200)

not null

操作人

tu_id

bigint

fk, not null

操作时间

gen_time

datetime

not null

三、概要设计说明书