系統的權限管理

轉自:http://blog.csdn.net/A123638/article/details/50374555
我只是進行了一個學習,整理

設計目標

設計一個靈活、通用、方便的權限管理系統

一、相關概念

1.權限

       系統的所有權限信息。權限具有上下級關係,是一個樹狀的結構。
例如:
  系統管理
    用戶管理
      查看用戶
        新增用戶
          修改用戶
            刪除用戶
       對於上面的每個權限,又存在兩種情況,一個是隻是可訪問,另一種是可授權,例如用戶只被授予“可訪問”,那麼他就不能將他所具有的這個權限分配給其他人

2.用戶

應用系統的具體操作者,用戶可以自己擁有權限信息,可以歸屬於0~n個角色,可屬於0~n個組。他的權限集是自身具有的權限、所屬各角色具有的權限、所屬各組具有的權限的合集。它與權限、角色、組之間的關係都是n對n的關係。

3.角色

爲了對多個擁有相似權限的用戶進行分類管理,定義了角色的概念。例如系統管理員、管理員、用戶、訪客等角色。角色具有上下級關係,可以形成樹狀視圖,父級角色的權限是自身及它的所有子角色的權限的綜合。父級角色的用戶、父級角色的組同理可推。

4.組

       爲了更好地管理用戶,對用戶進行分組歸類,簡稱爲用戶分組。組也具有上下級關係,可以形成樹狀視圖。在實際情況中,我們知道,組也可以具有自己的角色信息、權限信息。
       例如QQ用戶羣,一個羣可以有多個用戶,一個用戶也可以加入多個羣。每個羣具有自己的權限信息。例如查看羣共享。QQ羣也可以具有自己的角色信息,例如普通羣、高級羣等。
四個對象之間的關係:
這裏寫圖片描述

二、數據庫設計

1.本系統至少需要十張表,分別爲:

  • 權限表
  • 用戶表
  • 角色表
  • 組表
  • 用戶權限關聯表
  • 用戶角色關聯表
  • 角色權限關聯表
  • 組權限關聯表
  • 組角色關聯表
  • 用戶屬組關聯表

2.PowerDesigner中的各表

PowerDesigner中設計文件下載地址:
這裏寫圖片描述

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

三、概要設計說明書

發佈了46 篇原創文章 · 獲贊 19 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章