接上(shàng)文(wén)ERP軟件(jiàn)定制(zhì)開(kāi)發之用(<≠yòng)戶權限模塊之一(yī)我們繼續。
有(yǒu)了(le)上(shàng)面三個(gè)對(d∑£∏uì)象,就(jiù)可(kě)以設計(×≤>€jì)數(shù)據庫表了(le),比如(r÷<÷ú)用(yòng)戶表User,角色表Rol"↔γφe,權限表Auth。三者之間(jiān)的(de)關系需☆Ω'要(yào)在數(shù)據表中體(tǐ)現(xiàn)出來(lái),也(yě)就(jiù)是(πshì)數(shù)據庫表的(de)外(wài)鍵。
正常的(de)設計(jì)是(shì)這(zhè)樣的(de),用(yòng)戶表有™λ(yǒu)個(gè)角色字段role_id用(yòng)來(lái)關聯角色表,™¶角色和(hé)權限表之間(jiān)通(tōng)過第三張表role_auth進行(λ↑xíng)關聯,這(zhè)樣設計(jì)可(kě)以做(β↕&zuò)到(dào)一(yī)對(duì)多(duō)的(de)設計(jì)。
表設計(jì)好(hǎo)了(le),程序對(duì)用(yòng)π₩≈¶戶是(shì)否具備該功能(néng)的(de)γ♣★操作(zuò)就(jiù)可(kě)以進行(xíng α)判斷了(le),用(yòng)戶登錄系統之後,會(huì)¥δ将角色對(duì)應的(de)權限查詢出來(lái),存儲到(dào)Sessiα♠≤on中,方便使用(yòng)時(shí)調取。
我們在判斷權限的(de)時(shí)候,根據該操作(zuò)預先定義的(de)權ε→ 限值去(qù)和(hé)Session存儲的(de)值進行( ≥xíng)比對(duì),如(rú)果包含了(le)該權限♠©↑值,那(nà)麽我們就(jiù)任務該用(yò ¥•ng)戶有(yǒu)這(zhè)個(gè)操作(zuò★∑☆)的(de)權限,可(kě)以繼續執行(xíng)下(xià)面的(de)邏輯,如(rú)果沒有(₹☆€yǒu)則表示沒有(yǒu)這(zhè)個(gè)權限,給<₩σ出提示無權操作(zuò)。當然,一(yī)般情況下(xià), 用(yòng)φ≤←戶對(duì)沒有(yǒu)權限的(de)模塊是(shì)不(bù)可(kěβ✘"₩)見(jiàn)的(de),這(zhè)個(gè)可(kě)以在開(kāi)發的(de)時(shí↓>•¥)候設計(jì)好(hǎo)。
有(yǒu)了(le)這(zhè)個(gè)判斷權限邏ε☆φ輯,就(jiù)基本可(kě)以實現(xiàn)了(le)用(yòng)戶-角♥₹★色-權限的(de)設計(jì)邏輯,當然實際情況可↑↑↕(kě)能(néng)複雜(zá)得(de)多(duō),這(zhè)裡(lǐ)隻討(t ₹φǎo)論基本情況,大(dà)家(jiā)可(kě)以在遇到(dào)問(w≥•↔èn)題時(shí)具體(tǐ)定。
以上(shàng)討(tǎo)論了(le)基本的(de)設計(jì)架構↓,我們的(de)目的(de)不(bù)僅要(yà >♠o)設計(jì)這(zhè)個(gè)功能∑ ✔→(néng),還(hái)要(yào)進行(xíng≥¥)模塊化(huà)設計(jì),這(zhè)樣在後續的(de)項★ π目中才可(kě)以很(hěn)好(hǎo)的(de)複用(yòng)。模塊化(huà)意 ←☆味著(zhe)該功能(néng)和(hé)系統的(de)設計(jì)耦合度♣'不(bù)高(gāo),模塊本身(shēn)®→可(kě)以通(tōng)過配置的(de)₹←方式進行(xíng)擴展,可(kě)以通(tōng)過某種方式,比如(rú)模塊安裝β↔•♥進行(xíng)代碼直接部署,或者是(shì)通(tōng)過配置然後進行(xíng)部署。能(×↓€néng)夠很(hěn)快(kuài)的(de)适應新的(de)系δ©≠統架構。
本文(wén)為(wèi)原創,轉發請(qǐng)标明(míng)出處。
蘇公網安備 32059002004131号