國(guó)慶前整的通用權(quán)限設(shè)計(jì)的數(shù)據(jù)庫(kù)初步設(shè)計(jì)部分,現(xiàn)在貼上來(lái)。
理清了對(duì)象關(guān)系之后,讓我們接著來(lái)進(jìn)行數(shù)據(jù)庫(kù)的設(shè)計(jì)。在數(shù)據(jù)庫(kù)建模時(shí),對(duì)于N對(duì)N的關(guān)系,一般需要加入一個(gè)關(guān)聯(lián)表來(lái)表示關(guān)聯(lián)的兩者的關(guān)系。初步估計(jì)一下,本系統(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)表。當(dāng)然還可能引出一些相關(guān)的表。下面讓我們?cè)?/span>PowerDesigner中畫出各表吧。
各表及其關(guān)系如下:

1. 用戶表
用戶表(TUser) |
|||
字段名稱 |
字段 |
類型 |
備注 |
記錄標(biāo)識(shí) |
tu_id |
bigint |
pk, not null |
所屬組織 |
to_id |
bigint |
fk, not null |
登錄帳號(hào) |
login_name |
varchar(64) |
not null |
用戶密碼 |
password |
varchar(64) |
not null |
用戶姓名 |
vsername |
varchar(64) |
not null |
手機(jī)號(hào) |
mobile |
varchar(20) |
|
電子郵箱 |
|
varchar(64) |
|
創(chuàng)建時(shí)間 |
gen_time |
datetime |
not null |
登錄時(shí)間 |
login_time |
datetime |
|
上次登錄時(shí)間 |
last_login_time |
datetime |
|
登錄次數(shù) |
count |
bigint |
not null |
2. 角色表
角色表(TRole) |
|||
字段名稱 |
字段 |
類型 |
備注 |
角色ID |
tr_id |
bigint |
pk, not null |
父級(jí)角色ID |
parent_tr_id |
bigint |
not null |
角色名稱 |
role_name |
varchar(64) |
not null |
創(chuàng)建時(shí)間 |
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)建時(shí)間 |
gen_time |
datetime |
not null |
組描述 |
description |
varchar(200) |
5. 角色權(quán)限表
角色權(quán)限表(TRoleRightRelation) |
|||
字段名稱 |
字段 |
類型 |
備注 |
記錄標(biāo)識(shí) |
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:可訪問(wèn),1:可授權(quán)) |
6. 組權(quán)限表
組權(quán)限表(TGroupRightRelation) |
|||
字段名稱 |
字段 |
類型 |
備注 |
記錄標(biāo)識(shí) |
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:可訪問(wèn),1:可授權(quán)) |
7. 組角色表
組角色表(TGroupRoleRelation) |
|||
字段名稱 |
字段 |
類型 |
備注 |
記錄標(biāo)識(shí) |
tgr_id |
bigint |
pk, not null |
組 |
tg_id |
bigint |
fk, not null |
角色 |
tr_id |
bigint |
pk, not null |
8. 用戶權(quán)限表
用戶權(quán)限表(TUserRightRelation) |
|||
字段名稱 |
字段 |
類型 |
備注 |
記錄標(biāo)識(shí) |
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:可訪問(wèn),1:可授權(quán)) |
9. 用戶角色表
用戶角色表(TUserRoleRelation) |
|||
字段名稱 |
字段 |
類型 |
備注 |
記錄標(biāo)識(shí) |
tur_id |
bigint |
pk, not null |
用戶 |
tu_id |
bigint |
fk, not null |
角色 |
tr_id |
bigint |
fk, not null |
10. 用戶組表
用戶組表(TUserGroupRelation) |
|||
字段名稱 |
字段 |
類型 |
備注 |
記錄標(biāo)識(shí) |
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)建時(shí)間 |
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 |
操作時(shí)間 |
gen_time |
datetime |
not null |