我們寫程序老會想,人有什么權限,角色有什么權限等,然后設計哪幾個表等等,
其實很多時候我們會遇到,哪臺電腦可以訪問哪臺電腦,那臺電腦可以上網?哪
個人可以進入那個房間等,哪個部門有什么權限。
為邊壩等地區(qū)用戶提供了全套網頁設計制作服務,及邊壩網站建設行業(yè)解決方案。主營業(yè)務為網站建設、成都網站設計、邊壩網站設計,以傳統(tǒng)方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
所以,擁有權限的,不只是人,還可以是其他的實體,這些實體不知道什么時候
會遇上什么需求,你總不能遇上一個實際需要,加幾個表,把權限判斷函數(shù)又修
改一下吧?
所以我建議權限的存儲結果是就一個表就可以了,其中有很多視圖,例如人的權
限是一個視圖,角色的權限是一個視圖,電腦的權限是一個視圖,遇到一個新的
需求,就建立一個視圖就可以了。這樣你寫的權限判斷函數(shù)就不用修改了,也能
滿足任何需要,表也不用沒完沒了的增加。
說白了,不就是,啥玩意對啥有啥權限嘛?所以我的權限設計的物理存儲結構為:
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 (視圖),什么資源有什么權限,所以寫一次程序,再也不用
修改了,遇到什么新需求,也是增加了一個視圖而已,物理表結構就不用增加了。
當然你系統(tǒng)的權限是固定的,我也建議你這么設計,早晚會遇到各種各樣的稀奇
古怪的需求,留下擴展的空間和余地,你覺得看著不順眼,就把視圖建立好,也
相當于真實的一個表,差距不是很大。
雖然說說簡單,這也是搞了N年,N個系統(tǒng),折騰了N次,反復修改了N回權限模塊
后,才總結出來的經驗,我這么說,你可能會笑我,真的總結出來很不容易的,
我畢竟不是天才,我是普通老百姓,也沒人教我指導一下。
本來我想在公司里推一推這個權限設計的思想,還沒等我講,大家先得出了一個
結論,天下不可能有通用的權限設計,那我問問,為什么會有通用的數(shù)據(jù)庫,為
什么還會有通用的操作系統(tǒng)?權限其實也不是非常的難,完全可以通用的,有啥
呀,不就那么點兒東西嘛。
我也多聽聽大家的,我們很容易變成老頑固,聽不進別人的意見,我已經努力了
幾年了,經常提醒自己,千萬別變成老頑固,那真的落后了。
我這個設計被無數(shù)人冷嘲熱諷后,2008年的一天,我在南京好朋友哪里進行技術
交流時,我無意間發(fā)現(xiàn),這個權限設計的思想,就是Oracle的權限設計思想,幾乎
是一模一樣的,我很自豪,因為我當時這么搞的時候,不是先去抄襲Oracle的權限。
我不知道做管理軟件的,是不是會覺得Oracle的權限設計是好的還是不好的?我想
在國內的普通設計人員還沒有資格說,Oracle的權限設計怎么怎么不好吧?
為什么老外在N年前就能接受這個思想,而且就一直這么用,我們在自己的公司,自
己身邊的人推這個思想,都很難很難,遇到各種刁難,阻攔。要么沒有一個通用的,
要么就不符合數(shù)據(jù)庫主外鍵約束,要么不符合設計原理什么的,后來我也懶得跟大家
爭來爭去的,不用拉倒吧,是你們提高,又不是我提高,對我有啥好處。我自己搞
自己的算了。
補充說明一下,以上文章只是我的整體解決方案中的很小一部分,只是一個比較
基礎的,大家很容易理解的部分,還有一系列針對各種問題是,到底是如何解決的,我目前還沒遇到我不能解決的,當然
前提是不修改權限框架,不修改權限函數(shù),目前我身邊遇到的問題,我還不能解決的,沒遇到。
整體哪個問題都怎么解決,涉及到我的利益,我不會全部公開出來,畢竟我花費
了很多年的心血,同時也是燒了很多錢,同時整體的解決方法,也是我們公司的財富,大家都會把殺手锏都公布出來嘛?
數(shù)據(jù)權限,你徹底相通了,也像玩一樣,復雜的問題復雜解決了不是水平,用簡單的道理能把復雜的問題看得特別透徹,
才是真正的解決問題的本質,數(shù)據(jù)權限到底如何解決,也有一攬子解決方法和解決思路,給你講了,你就懂了,不給你講
你可能要摸索很多年才會悟透,平時開發(fā)軟件遇到的什么問題,應該怎么解決,也是一整套的方法,這也是為什么有些東
西公開了也無所謂,以為這些簡單的,大家想想了也明白了,不難,難的問題,能解決了那就是成套的解決方案,是我賺
錢的看家本領,誰會愿意把自己的真功夫教給大家?微軟會把自己的操作系統(tǒng)代碼都告訴我們嘛,也歡迎大家洽談深入的
合作,這么多年,我就研究了這個,用最簡單的方法,解決你最難的問題,所以我說話底氣才這么足的原因。我別的不行,
就這個行。天天就研究這問題了。
收費標準是,1天2000元實施顧問費,一般有2天就解決好了,都講清楚了
(注:解答你提出95%以上的權限相關問題,回答不了你50%的問題,免費咨詢,只能回答你10%的問題,我給你2000元一天的誤工費)。
需要管理工具,1萬元一套, 需要整套的源代碼,架構思想,那要另外算錢了。
聯(lián)系方式: QQ:252056973
MSN: JiRiGaLa_Bao@Hotmail.com
聯(lián)系人:吉日嘎拉
聯(lián)系電話:0571-8890 3169
當前名稱:換位思考權限設計(把復雜的問題,簡單化才是水平,用簡單的道理解決復雜的問題)
當前鏈接:http://m.rwnh.cn/article6/jejiog.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站建設、App開發(fā)、網站排名、標簽優(yōu)化、靜態(tài)網站、移動網站建設
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)