目前我使用的權(quán)限管理是普通的角色,菜單,用戶模式,也就是說最低能把權(quán)限限制到菜單節(jié)點上。
現(xiàn)在有這樣的需求:
四種角色 :超管--區(qū)域經(jīng)理--門店經(jīng)理--員工
這幾個角色都可以管理會員。但是管理的方式不一樣。
1:查看會員。 四種角色都可以,但是查看范圍不一樣,超管可以查看所有,區(qū)域經(jīng)理可以查看旗下的門店經(jīng)理添加的會員和門店經(jīng)理下面員工添加的會員的綜合。門店經(jīng)理能查看自己添加的會員和旗下員工添加的會員總和。員工只能查看自己添加的會員。
像上面這種權(quán)限設(shè)計都哪些好方法?
業(yè)精于勤,荒于嬉;行成于思,毀于隨。
像這種具有層級關(guān)系的,重點在于建立父級與子級上的關(guān)聯(lián),每個子級的code都是在父級code的基礎(chǔ)上擴展。
用戶表users中,可以建成這樣:
id user code
1 超管 00001
2 A區(qū)域經(jīng)理 0000100001
3 B區(qū)域經(jīng)理 0000100002
4 A區(qū)域下的A1門店經(jīng)理 000010000100001
5 A區(qū)域下的A2門店經(jīng)理 000010000100002
6 A區(qū)域下的A1門店經(jīng)理下的A11員工 00001000010000100001
7 A區(qū)域下的A1門店經(jīng)理下的A12員工 00001000010000100002
...
而會員表vip則是
id c_uid(創(chuàng)建人)
1 4
2 7
3 5
4 6
5 6
當A區(qū)域下的A1門店經(jīng)理(id=4,code=000010000100001)登錄時,要獲取旗下的會員就可以這樣寫:
select *
from users t1
left join vip t2 on t1.id=t2.c_uid
where t1.code like concat('000010000100001','%');
如果這需求沒有那么容易變動(查看范圍變動),我建議是寫在代碼上。數(shù)據(jù)訪問層上對接受的不同角色返回不同的數(shù)據(jù)集與檢驗權(quán)限判斷。
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號