接上(shàng)文(wén)ERP軟件(jiàn)定制(zhì)開(kāi)發之用₽÷(yòng)戶權限模塊之一(yī)我們繼續。
有(yǒu)了(le)上(shàng)面三個(gè)對(duì)象,就(jiù)可(kě)以設計(♠★←₩jì)數(shù)據庫表了(le),比如(rúΩΩ★¥)用(yòng)戶表User,角色表Role,權限表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)Session中,方便使用(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号