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