国庆前整的通用权限设计的数据库初步设计部分,现在贴上来。
理清了对象关系之后,让我们接着来进行数据库的设计。在数据库建模时,对于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)
|
|
电子邮箱
|
email
|
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)
|
|
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
|
|