國慶前整的通用權(quán)限設(shè)計的數(shù)據(jù)庫初步設(shè)計部分,現(xiàn)在貼上來。
理清了對象關(guān)系之后,讓我們接著來進行數(shù)據(jù)庫的設(shè)計。在數(shù)據(jù)庫建模時,對于N對N的關(guān)系,一般需要加入一個關(guān)聯(lián)表來表示關(guān)聯(lián)的兩者的關(guān)系。初步估計一下,本系統(tǒng)至少需要十張表,分別為:權(quán)限表、用戶表、角色表、組表、用戶權(quán)限關(guān)聯(lián)表、用戶角色關(guān)聯(lián)表、角色權(quán)限關(guān)聯(lián)表、組權(quán)限關(guān)聯(lián)表、組角色關(guān)聯(lián)表、用戶屬組關(guān)聯(lián)表。當然還可能引出一些相關(guān)的表。下面讓我們在PowerDesigner中畫出各表吧。
各表及其關(guān)系如下:
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)
|
|
創(chuàng)建時間
|
gen_time
|
datetime
|
not null
|
登錄時間
|
login_time
|
datetime
|
|
上次登錄時間
|
last_login_time
|
datetime
|
|
登錄次數(shù)
|
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
|
創(chuàng)建時間
|
gen_time
|
datetime
|
not null
|
角色描述
|
description
|
varchar(200)
|
|
3. 權(quán)限表
權(quán)限表(TRight)
|
字段名稱
|
字段
|
類型
|
備注
|
權(quán)限ID
|
tr_id
|
bigint
|
pk, not null
|
父權(quán)限
|
parent_tr_id
|
bigint
|
not null
|
權(quán)限名稱
|
right_name
|
varchar(64)
|
not null
|
權(quán)限描述
|
description
|
varchar(200)
|
|
4. 組表
組表(TGroup)
|
字段名稱
|
字段
|
類型
|
備注
|
組ID
|
tg_id
|
bigint
|
pk, not null
|
組名稱
|
group_name
|
varchar(64)
|
not null
|
父組
|
parent_tg_id
|
bigint
|
not null
|
創(chuàng)建時間
|
gen_time
|
datetime
|
not null
|
組描述
|
description
|
varchar(200)
|
|
5. 角色權(quán)限表
角色權(quán)限表(TRoleRightRelation)
|
字段名稱
|
字段
|
類型
|
備注
|
記錄標識
|
trr_id
|
bigint
|
pk, not null
|
角色
|
Role_id
|
bigint
|
fk, not null
|
權(quán)限
|
right_id
|
bigint
|
fk, not null
|
權(quán)限類型
|
right_type
|
int
|
not null(0:可訪問,1:可授權(quán))
|
6. 組權(quán)限表
組權(quán)限表(TGroupRightRelation)
|
字段名稱
|
字段
|
類型
|
備注
|
記錄標識
|
tgr_id
|
bigint
|
pk, not null
|
組
|
tg_id
|
bigint
|
fk, not null
|
權(quán)限
|
tr_id
|
bigint
|
fk, not null
|
權(quán)限類型
|
right_type
|
int
|
not null(0:可訪問,1:可授權(quán))
|
7. 組角色表
組角色表(TGroupRoleRelation)
|
字段名稱
|
字段
|
類型
|
備注
|
記錄標識
|
tgr_id
|
bigint
|
pk, not null
|
組
|
tg_id
|
bigint
|
fk, not null
|
角色
|
tr_id
|
bigint
|
pk, not null
|
8. 用戶權(quán)限表
用戶權(quán)限表(TUserRightRelation)
|
字段名稱
|
字段
|
類型
|
備注
|
記錄標識
|
tur_id
|
bigint
|
pk, not null
|
用戶
|
tu_id
|
bigint
|
fk, not null
|
權(quán)限
|
tr_id
|
bigint
|
fk, not null
|
權(quán)限類型
|
right_type
|
int
|
not null(0:可訪問,1:可授權(quán))
|
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
|
創(chuàng)建時間
|
gen_time
|
datetime
|
not null
|
組織描述
|
description
|
varchar(200)
|
|
12. 操作日志表
操作日志表(TLog)
|
字段名稱
|
字段
|
類型
|
備注
|
日志ID
|
log_id
|
bigint
|
pk, not null
|
操作類型
|
op_type
|
int
|
not null
|
操作內(nèi)容
|
content
|
varchar(200)
|
not null
|
操作人
|
tu_id
|
bigint
|
fk, not null
|
操作時間
|
gen_time
|
datetime
|
not null
|
|