基與角色的許可權管理系統資料庫設計
表名:使用者表(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許可權 新增客戶 編輯客戶 刪除客戶,檢視客...