国庆前整的通用权限设计的数据库初步设计部分,现在贴上来。
理清了对象关系之后,让我们接着来进行数据库的设计。在数据库建模时,对于N对N的关系,一般需要加入一个关联表来表示关联的两者的关系。初步估计一下,本系统至少需要十张表,分别为:权限表、用户表、角色表、组表、用户权限关联表、用户角色关联表、角色权限关联表、组权限关联表、组角色关联表、用户属组关联表。当然还可能引出一些相关的表。下面让我们在PowerDesigner中画出各表吧。
各表及其关系如下:
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) | |
| 电子邮箱 | | varchar(64) | |
| 创建时间 | gen_time | datetime | not null |
| 登录时间 | login_time | datetime | |
| 上次登录时间 | last_login_time | datetime | |
| 登录次数 | count | bigint | not null |
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. 权限表
| 权限表(TRight) | |||
| 字段名称 | 字段 | 类型 | 备注 |
| 权限ID | tr_id | bigint | pk, not null |
| 父权限 | parent_tr_id | bigint | not null |
| 权限名称 | right_name | varchar(64) | not null |
| 权限描述 | description | varchar(200) | |
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) | |
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:可授权) |
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:可授权) |
7. 组角色表
| 组角色表(TGroupRoleRelation) | |||
| 字段名称 | 字段 | 类型 | 备注 |
| 记录标识 | tgr_id | bigint | pk, not null |
| 组 | tg_id | bigint | fk, not null |
| 角色 | tr_id | bigint | pk, not null |
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:可授权) |
9. 用户角色表
| 用户角色表(TUserRoleRelation) | |||
| 字段名称 | 字段 | 类型 | 备注 |
| 记录标识 | tur_id | bigint | pk, not null |
| 用户 | tu_id | bigint | fk, not null |
| 角色 | tr_id | bigint | fk, not null |
10. 用户组表
| 用户组表(TUserGroupRelation) | |||
| 字段名称 | 字段 | 类型 | 备注 |
| 记录标识 | tug_id | bigint | pk, not null |
| 用户 | tu_id | bigint | fk, not null |
| 组 | tg_id | bigint | fk, not null |
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) | |
权限系统设计
本文详细介绍了通用权限管理系统的设计方案,包括用户、角色、权限等核心组件的数据库表结构设计,并通过关联表实现复杂的权限分配。
1万+

被折叠的 条评论
为什么被折叠?



