基於角色的許可權管理系統資料庫設計

2021-05-12 23:23:18 字數 2028 閱讀 9366

表名:使用者表(user)

主鍵:id

備註:這張表唯一要求就是檢索速度?如果該張表每天有一千萬次的訪問量,該如何設計優化?

filedname

filedtype

mainfileddescription

idname

otherfiled

int自動增長列,主鍵約束

varchar(20), not null,唯一索引

其它自段可根據需求新增

使用者名稱表名:使用者角色表(userrole)

主鍵:復合主鍵(uid,rid)

備註:將使用者和角色的關係連線起來,如何處理使用者的預設角色,避免該錶無限增加?

既然是預設角色,就直接為使用者指定乙個rid角色外來鍵。當使用者登陸的時候直接通過他的rid獲取許可權即可

uidrid

otherfiled

int,not null,外來鍵user(id)

int,not null,外來鍵role(id)

其它自段可根據需求新增

表名:角色表(role)

主鍵:id

備註:這張表比較簡單,一般資料都比較少。

idname

otherfiled

int自動增長列,主鍵約束

varchar(20) not null,唯一索引

其它自段可根據需求新增

表名:角色許可權表(roleprivilege)

主鍵:復合主鍵(rid,pid)

備註:這張表主要記錄角色的許可權資訊,有人說這張表應該對映許可權表的name欄位,我還是沒想明白,如果我將許可權表中的name進行修改,那該表中的對映勢必也要全部修改,而用pid的話就不會產生該問題。還有就是修改許可權的意圖是什麼呢?讓已擁有該許可權的使用者失去該許可權?或者說是暫失去?那這樣的話外來鍵約束如何實現,對了可以將外來鍵設為可以為null,但這種空的對映資訊又有什麼意義呢?還不如直接刪除,這樣使用者也失去了該許可權,那麼就不用修改許可權表了,直接將外來鍵刪除就行了。

ridpid

otherfiled

int,not null,外來鍵role(id)

varchar(20),外來鍵 privilege(name)

其它自段可根據需求新增

表名:許可權表(privilege)

主鍵:id

備註:該錶一般也較小,但訪問量如果每天超過上千萬次如何設計?如果有parentid欄位那麼角色許可權對映錶該如何避免重複許可權對映?

在分配的時候進行判斷,看使用者是否已有要分配的許可權,或者要分配許可權的父許可權。

idname

parenteid

operate

otherfiled

int自動增長列,主鍵約束

varchar(20) ,not null,唯一索引

int ,外來鍵privilege(id)

varchar(50)

其它自段可根據需求新增

parentid:父許可權標識:父許可權擁有子權,子權不擁有父許可權。如:擁有訪問demo.jsp的許可權但不擁有操作demo.jsp中按鈕的許可權等。

表名:許可權分類(privilegetype)

主鍵:id

備註:該錶一般也較小,訪問量一般較低,只要用來對許可權進行分類。

idname

otherfiled

int自動增長列,主鍵約束

varchar(20) ,not null,唯一索引

其它自段可根據需求新增

表名:使用者許可權臨時表(tempprivilege)

主鍵:復合主鍵(uid,pid)

備註:該錶主要是為了處理臨時狀況而產生的,比如臨時給某個員工什麼許可權?過後可直接刪除。

uidpid

otherfiled

int,not null,外來鍵user(id)

int,not null,外來鍵privilege(id)

其它自段可根據需求新增

詳細出處參考:http://bbs.diybl.com/dview54t7733.html

基於角色的許可權管理系統

許可權模型 rbac簡化了使用者與許可權的關係 圖中有5個角標數字,對應的就是rbac模型重要的5個屬性 rbac關係圖 序號關鍵屬性描述1 使用者張 三 李四 王五2角色 銷售經理 銷售 前台 3使用者角色關係 張三 是 銷售經理 李四 王五 是 銷售4許可權 新增客戶 編輯客戶 刪除客戶,檢視客...

基於角色的許可權設計 資料庫

最近專案中需要設計乙個許可權系統,收集了一下資料,許可權系統主要有兩種技術 acl access control list 和rbac role based access control 前者是將使用者直接和許可權關聯,並通過group來組織這些使用者,windows 系統的使用者許可權就應該屬於這...

基於許可權的角色管理

1.基於角色的許可權管理介紹 rbac 得到乙個專案要搞懂兩點 首先看懂需求 表設計出來 業務 無非就是操作的表不一樣,搞清楚往那張表裡寫,從那張表裡讀就可以了 基於角色的許可權管理至少得四張表 使用者表 多戶n 角色1 角色表 為了分配資源簡單化,因此給使用者配角色即可以了 角色n 資源n 資源表...