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

2021-08-30 10:42:20 字數 2249 閱讀 3107

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

表名:使用者表(user)

主鍵:id

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

filedname

filedtype

mainfileddescription

idname

otherfiled

int自動增長列,

主鍵約束

varchar(20), not null,

唯一索引

其它自段可根據需求新增

使用者名稱

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

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

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

既然是預設角色,就直接為使用者指定乙個rid

角色外來鍵。當使用者登陸的時候直接通過他的rid

獲取許可權即可

uidridotherfiled

int,not null,

外來鍵user(id)

int,not null,

外來鍵role(id)

其它自段可根據需求新增

表名:角色表(role)

主鍵:id

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

name

otherfiled

int自動增長列,

主鍵約束

varchar(20) not null,

唯一索引

其它自段可根據需求新增

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

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

備註:這張表主要記錄角色的許可權資訊,有人說這張表應該對映許可權表的name

字段,我還是沒想明白,如果我將許可權表中的name

進行修改,那該表中的對映勢必也要全部修改,而用pid

的話就不會產生該問題。還有就是修改許可權的意圖是什麼呢?讓已擁有該許可權的使用者失去該許可權?或者說是暫失去?那這樣的話外來鍵約束如何實現,對了可以將外來鍵設為可以為null

,但這種空的對映資訊又有什麼意義呢?還不如直接刪除,這樣使用者也失去了該許可權,那麼就不用修改許可權表了,直接將外來鍵刪除就行了。

ridpidotherfiled

int,not null,

外來鍵role(id)

varchar(20),

外來鍵privilege(name)

其它自段可根據需求新增

表名:許可權表(privilege)

主鍵:id

備註:該錶一般也較小,但訪問量如果每天超過上千萬次如何設計?如果有parentid

字段那麼角色許可權對映錶該如何避免重複許可權對映?

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

name

parenteid

operate

otherfiled

int自動增長列,

主鍵約束

varchar(20) ,not null,

唯一索引

int ,

外來鍵privilege(id)

varchar(50)

其它自段可根據需求新增

parentid

:父許可權標識:父許可權擁有子權,子權不擁有父許可權。如:擁有訪問demo.jsp

的許可權但不擁有操作demo.jsp

中按鈕的許可權等。

表名:許可權分類(privilegetype)

主鍵:id

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

name

otherfiled

int自動增長列,

主鍵約束

varchar(20) ,not null,

唯一索引

其它自段可根據需求新增

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

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

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

uidpidotherfiled

int,not null,

外來鍵user(id)

int,not null,

外來鍵privilege(id)

其它自段可根據需求新增

最近思考了一下關與基於角色的許可權管理系統,這是我各人設計的資料庫方案,其中有什麼問題希望大家一起討論一下,有什麼好的建議也希望大家能夠提出來,我希望將其完善成乙個可重用的許可權系統。

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

表名 使用者表 user 主鍵 id 備註 這張表唯一要求就是檢索速度?如果該張表每天有一千萬次的訪問量,該如何設計優化?filedname filedtype mainfileddescription idname otherfiled int自動增長列,主鍵約束 varchar 20 not n...

資料庫角色許可權

use database goexec sp addlogin name 新增登入 exec sp grantdbaccess n name exec sp addrolemember n db owner n name 新增db owner許可權 go 刪除測試使用者 exec sp revoke...

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

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