ThinkPHP中RBAC資料庫詳解

2021-05-26 01:00:09 字數 1714 閱讀 7319

看著是不是又暈了?呵呵,沒關係,我們來用乙個簡單的圖表和簡易圖來像大家說明:

表think_access:

role_id node_id pid level

使用者組的編號 節點表 節點表中的父id項 節點表中的等級項

注:如果使用者組id和對應的節點id存在這張表中,就表示使用者所在的使用者組有許可權進行對應的操作許可權。

表think_node

id name title pid level

節點編號,用來產生關聯關係,主鍵,自增方便索引 專案,模組或者動作的名字(嚴格區分大小寫) 專案或模組的備註,方便管理員認識和了解 注① 只能為1,2,3分別代表專案,模組,操作動作

注① :

1)如果是專案名稱則專案是頂級的,它上面沒有父路徑編號(pid),因此pid則為0;例如,**下有乙個admin專案,它是頂級的。因此沒有父路徑編號(pid),此處應填0,如果它為第一次插入資料庫的,它的id則為1。全欄位插入資料庫應為:

id name title pid level

1 admin admin專案節點 0 1

2)如果某專案下有乙個模組。則父路徑編號(pid)則為該某塊所在的專案編號(id)。例如,admin下面有乙個模組為user,它是第二個插入資料庫的。因此,模組的父路徑(pid)應填1。全欄位插入資料庫應為:

id name title pid level

2 user user模組節點 0 2

3)如果在某模組下面有三個動作(或成員方法),分別index(顯示)、insert(插入)、delete(刪除),它們三個的父路徑為該模組的編號。例如user模組下有index、insert、delete三個動作或成員方法,它們分別是第三,四,五次插入資料庫的。他們的父路徑編號(pid)應填2。全欄位插入資料庫應為:

id name title pid level

3 user user模組下顯示動作 0 2

4 index user模組下插入動作 0 2

5 insert user模組下刪除動作 0 2

表think_role

id name

組的編號(主鍵) 組的名字

注:此表中可以插入父路徑編號(pid)產生組的包含關係。對應的父路徑編號(pid)為所屬組的編號(id)。

表think_user

id username password

使用者編號(主鍵,int型別) 使用者名稱(varchar型別) 密碼(char型別32位)

注:id在下一張表中結合think_role產生使用者與組的關聯關係。建議username設為唯一的,password採用32位md5加密。

表think_role_user

group_id user_id

組編號(主鍵,int型別) 使用者編號(主鍵,int型別)

注:使用者編號(user_id)對應哪乙個group_id,則哪個使用者就屬於哪乙個組。可以讓同乙個使用者對應多個組。就意味著,乙個使用者具有多個組的屬性和操作許可權。

表建完了,我們現在來看一下簡易圖形和他們的對應關係。 

最難理解,也是最核心的資料庫結構和儲存結構說完了,對照著這個資料庫進行插入,新增修改即可。

在下期我們將接著講解thinkphp的**或資料庫插入部份。希望大家很快能領悟其中,從而在開發中更加方便和快速。

零學費學習,就業後還款,php高薪就業班!

lamp兄弟連官方php學習交流qq群

基於thinkphp的RBAC許可權控制

rbac role based access control 許可權控制在後台管理中是十分常見的,它的模型大體上是下面這張圖的形式 我用的字段和上面不一樣,圖只是個示例 乙個簡易的許可權控制模型只需要3個表就行了 user表 記錄使用者的資訊和使用者的角色 user id 使用者的id user r...

thinkPHP框架RBAC實現原理分析

rbac就是 role based access controller,基於角色 role 的許可權 access 管理,這裡簡單介紹一下他的原理與實現方式之一。part 1 資料庫設計 首先最基本的組成有 使用者 admin 角色 role 具體許可權 auth 這三者之間的關係是這樣的 乙個使用...

thinkphp的rbac設計到幾張表

think role 使用者主表 think role user 組合使用者對應關係 think node 節點表 think access 使用者許可權表 think user 使用者表 基本三個字段,id,username,password 節點表 節點 就是專案,模組,方法之間的關係,能訪問專...