換位思考權(quán)限設(shè)計(jì)(把復(fù)雜的問題,簡(jiǎn)單化才是水平,用簡(jiǎn)單的道理解決復(fù)雜的問題)

我們寫程序老會(huì)想,人有什么權(quán)限,角色有什么權(quán)限等,然后設(shè)計(jì)哪幾個(gè)表等等,
其實(shí)很多時(shí)候我們會(huì)遇到,哪臺(tái)電腦可以訪問哪臺(tái)電腦,那臺(tái)電腦可以上網(wǎng)?哪
個(gè)人可以進(jìn)入那個(gè)房間等,哪個(gè)部門有什么權(quán)限。

為邊壩等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及邊壩網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、邊壩網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

所以,擁有權(quán)限的,不只是人,還可以是其他的實(shí)體,這些實(shí)體不知道什么時(shí)候
會(huì)遇上什么需求,你總不能遇上一個(gè)實(shí)際需要,加幾個(gè)表,把權(quán)限判斷函數(shù)又修
改一下吧?

所以我建議權(quán)限的存儲(chǔ)結(jié)果是就一個(gè)表就可以了,其中有很多視圖,例如人的權(quán)
限是一個(gè)視圖,角色的權(quán)限是一個(gè)視圖,電腦的權(quán)限是一個(gè)視圖,遇到一個(gè)新的
需求,就建立一個(gè)視圖就可以了。這樣你寫的權(quán)限判斷函數(shù)就不用修改了,也能
滿足任何需要,表也不用沒完沒了的增加。

說白了,不就是,啥玩意對(duì)啥有啥權(quán)限嘛?所以我的權(quán)限設(shè)計(jì)的物理存儲(chǔ)結(jié)構(gòu)為:
 

換位思考權(quán)限設(shè)計(jì)(把復(fù)雜的問題,簡(jiǎn)單化才是水平,用簡(jiǎn)單的道理解決復(fù)雜的問題)

 

Base_UserPermission 視圖的定義為 SELECT * FROM Base_ResourcePermission WHERE ResourceCategory = 'User'
   ResourceID 為 UserID.

Base_RolePermission 視圖的定義為 SELECT * FROM Base_ResourcePermission WHERE ResourceCategory = 'Role'
   ResourceID 為 RoleID.

Base_ModulePermission  視圖的定義為 SELECT * FROM Base_ResourcePermission WHERE ResourceCategory = 'Module'
   ResourceID 為 ModuleID.

就是 1(表) + N (視圖),什么資源有什么權(quán)限,所以寫一次程序,再也不用
修改了,遇到什么新需求,也是增加了一個(gè)視圖而已,物理表結(jié)構(gòu)就不用增加了。

當(dāng)然你系統(tǒng)的權(quán)限是固定的,我也建議你這么設(shè)計(jì),早晚會(huì)遇到各種各樣的稀奇
古怪的需求,留下擴(kuò)展的空間和余地,你覺得看著不順眼,就把視圖建立好,也
相當(dāng)于真實(shí)的一個(gè)表,差距不是很大。

雖然說說簡(jiǎn)單,這也是搞了N年,N個(gè)系統(tǒng),折騰了N次,反復(fù)修改了N回權(quán)限模塊
后,才總結(jié)出來的經(jīng)驗(yàn),我這么說,你可能會(huì)笑我,真的總結(jié)出來很不容易的,
我畢竟不是天才,我是普通老百姓,也沒人教我指導(dǎo)一下。

本來我想在公司里推一推這個(gè)權(quán)限設(shè)計(jì)的思想,還沒等我講,大家先得出了一個(gè)
結(jié)論,天下不可能有通用的權(quán)限設(shè)計(jì),那我問問,為什么會(huì)有通用的數(shù)據(jù)庫,為
什么還會(huì)有通用的操作系統(tǒng)?權(quán)限其實(shí)也不是非常的難,完全可以通用的,有啥
呀,不就那么點(diǎn)兒東西嘛。

我也多聽聽大家的,我們很容易變成老頑固,聽不進(jìn)別人的意見,我已經(jīng)努力了
幾年了,經(jīng)常提醒自己,千萬別變成老頑固,那真的落后了。

我這個(gè)設(shè)計(jì)被無數(shù)人冷嘲熱諷后,2008年的一天,我在南京好朋友哪里進(jìn)行技術(shù)
交流時(shí),我無意間發(fā)現(xiàn),這個(gè)權(quán)限設(shè)計(jì)的思想,就是Oracle的權(quán)限設(shè)計(jì)思想,幾乎
是一模一樣的,我很自豪,因?yàn)槲耶?dāng)時(shí)這么搞的時(shí)候,不是先去抄襲Oracle的權(quán)限。

我不知道做管理軟件的,是不是會(huì)覺得Oracle的權(quán)限設(shè)計(jì)是好的還是不好的?我想
在國(guó)內(nèi)的普通設(shè)計(jì)人員還沒有資格說,Oracle的權(quán)限設(shè)計(jì)怎么怎么不好吧?

為什么老外在N年前就能接受這個(gè)思想,而且就一直這么用,我們?cè)谧约旱墓?,?br />己身邊的人推這個(gè)思想,都很難很難,遇到各種刁難,阻攔。要么沒有一個(gè)通用的,
要么就不符合數(shù)據(jù)庫主外鍵約束,要么不符合設(shè)計(jì)原理什么的,后來我也懶得跟大家
爭(zhēng)來爭(zhēng)去的,不用拉倒吧,是你們提高,又不是我提高,對(duì)我有啥好處。我自己搞
自己的算了。

 

補(bǔ)充說明一下,以上文章只是我的整體解決方案中的很小一部分,只是一個(gè)比較
基礎(chǔ)的,大家很容易理解的部分,還有一系列針對(duì)各種問題是,到底是如何解決的,我目前還沒遇到我不能解決的,當(dāng)然
前提是不修改權(quán)限框架,不修改權(quán)限函數(shù),目前我身邊遇到的問題,我還不能解決的,沒遇到。

整體哪個(gè)問題都怎么解決,涉及到我的利益,我不會(huì)全部公開出來,畢竟我花費(fèi)
了很多年的心血,同時(shí)也是燒了很多錢,同時(shí)整體的解決方法,也是我們公司的財(cái)富,大家都會(huì)把殺手锏都公布出來嘛?

數(shù)據(jù)權(quán)限,你徹底相通了,也像玩一樣,復(fù)雜的問題復(fù)雜解決了不是水平,用簡(jiǎn)單的道理能把復(fù)雜的問題看得特別透徹,
才是真正的解決問題的本質(zhì),數(shù)據(jù)權(quán)限到底如何解決,也有一攬子解決方法和解決思路,給你講了,你就懂了,不給你講
你可能要摸索很多年才會(huì)悟透,平時(shí)開發(fā)軟件遇到的什么問題,應(yīng)該怎么解決,也是一整套的方法,這也是為什么有些東
西公開了也無所謂,以為這些簡(jiǎn)單的,大家想想了也明白了,不難,難的問題,能解決了那就是成套的解決方案,是我賺
錢的看家本領(lǐng),誰會(huì)愿意把自己的真功夫教給大家?微軟會(huì)把自己的操作系統(tǒng)代碼都告訴我們嘛,也歡迎大家洽談深入的
合作,這么多年,我就研究了這個(gè),用最簡(jiǎn)單的方法,解決你最難的問題,所以我說話底氣才這么足的原因。我別的不行,
就這個(gè)行。天天就研究這問題了。

 

收費(fèi)標(biāo)準(zhǔn)是,1天2000元實(shí)施顧問費(fèi),一般有2天就解決好了,都講清楚了
(注:解答你提出95%以上的權(quán)限相關(guān)問題,回答不了你50%的問題,免費(fèi)咨詢,只能回答你10%的問題,我給你2000元一天的誤工費(fèi))。 
需要管理工具,1萬元一套, 需要整套的源代碼,架構(gòu)思想,那要另外算錢了。
 

聯(lián)系方式: QQ:252056973
MSN: JiRiGaLa_Bao@Hotmail.com
聯(lián)系人:吉日嘎拉
聯(lián)系電話:0571-8890 3169

 

 

將權(quán)限管理、工作流管理做到我能力的極致,一個(gè)人只能做好那么很少的幾件事情。

 

當(dāng)前名稱:換位思考權(quán)限設(shè)計(jì)(把復(fù)雜的問題,簡(jiǎn)單化才是水平,用簡(jiǎn)單的道理解決復(fù)雜的問題)
當(dāng)前鏈接:http://muchs.cn/article6/jejiog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、App開發(fā)網(wǎng)站排名、標(biāo)簽優(yōu)化靜態(tài)網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)