濮阳杆衣贸易有限公司

主頁 > 知識庫 > 用戶權限管理設計[圖文說明]

用戶權限管理設計[圖文說明]

熱門標簽:不同的地圖標注 防城港市ai電銷機器人 溫嶺代理外呼系統(tǒng) 怎么更改地圖標注電話 臨滄移動外呼系統(tǒng)哪家有 隨州銷售外呼系統(tǒng)平臺 交行外呼系統(tǒng)有哪些 寧夏保險智能外呼系統(tǒng)哪家好 激戰(zhàn)黃昏地圖標注說明
最近在一個項目中設計的一個用戶權限的設計,很樂意與大家一起討論及分享.
設計思路
我的設計思路或者說是我想要實現(xiàn)的功能
1.用戶的權限通過角色來控制,一個用戶可以擁有多個角色.
2.用戶擁有不同角色時,其權限應該是多個角色相互的補集.
3.一個角色擁有多個模塊
4.用戶的前臺菜單顯示根據(jù)角色所擁有的模塊所決定,不同的用戶在前端顯示的操作菜單是不一樣的。
5.頁面中的功能按鈕根據(jù)模塊中所包含的功能所定義,通過模塊及角色所擁有的權限進行控制
6.可看某個模塊有哪些用戶,哪些對應角色,并對其進行特殊權限設置.
7.可以針對單個用戶進行特殊設置
我在我的Project中,基本上達到了以上的效果及功能,但在實際過程中發(fā)現(xiàn)有些不足之處。因為整個權限設計是基于數(shù)據(jù)庫來設計中,所以數(shù)據(jù)的讀取當數(shù)據(jù)量大時(我所說的數(shù)據(jù)量是以萬以上來計)可能對性能有一定的影響。但對于一般來說,幾千用戶之類的我想還是可以承受的。我會在后面說明不足之處。
數(shù)據(jù)庫設計
基本設計:
1.首先,設計數(shù)據(jù)庫.
數(shù)據(jù)庫的設計其實我估計大家都很熟悉了
基本表:用戶表,角色表,模塊表,功能表,管理員表.如果涉及到企業(yè)性質(zhì)的,可能會根據(jù)需要加上組織結構表,群組表等其它輔助表
用戶

 

管理員

角色

模塊

(我的模塊表考慮了子模塊的因素,所以會有深度,父模塊ID這兩個字段,在后來開發(fā)過中,由于思路的轉(zhuǎn)變,IsRootModule,FunctionCode我都沒有用到,為了讓整個權限系統(tǒng)通變得更通用,我都將其單獨設計成了另一個表)

功能表(功能表就是模塊對應的功能:增加,刪除,修改,詳細,列表,瀏覽,導出,導入之類的)

業(yè)務表:用戶-角色表 模塊-功能表 角色-模塊表

要實現(xiàn)一個用戶多個角色(1 to n),一個角色多個模塊(1 to n),一個模塊多個功能(1 to n),那就得加上幾個相關的業(yè)務表,之前考慮用視圖去實現(xiàn),我個人之見,視圖最好只用來讀取數(shù)據(jù),不要用來進行數(shù)據(jù)操作.后來證明是不可取的,這里要注意的就是在實際的業(yè)務操作中,應該盡量避免重復的數(shù)據(jù)錄入. 這些表都很簡單,但卻很關鍵

用戶-角色:

角色-模塊:

模塊-功能:

大家可以看到,表結構很簡單,字段也很少,設計也差不多。都是將相關聯(lián)的字段ID取出來做數(shù)據(jù)存取。

視圖:用戶-角色-模塊-功能視圖

 

可能大家會覺得很奇怪,為什么這里出現(xiàn)member_role呢。因為我們在數(shù)據(jù)表中只存取了ID值,而對應的RoleName字段并沒有包含其中,這里的視圖就是獲取關聯(lián)表中其他所需要的字段數(shù)據(jù)了。另外兩個視圖大家看名字應該就知道他的用處了。

存儲過程:各自表的增加,刪除,修改,及列表數(shù)據(jù). 判斷是否存在相同的數(shù)據(jù)
(CUDLIS-Create, Update,Delete,IfExist,Show,List)

存儲過程我就不一一列出了,很簡單的,你只要寫出下面這些基本上你在開發(fā)過程就不會有太多問題了. 注意的是:在相互關聯(lián)的業(yè)務表中,最好能對數(shù)據(jù)插入進行重復數(shù)據(jù)判斷(用戶角色表,模塊功能表,角色模塊表,盡量避免重復的數(shù)據(jù)插入)我把大致需要實現(xiàn)的業(yè)務列個表給大家參考:

用戶表:(Insert ,Update ,IfExist ,Show, Delete)

用戶角色表:(Insert ,Update,IfExist,Delete,RoleListByUserID,UserListByRoleID)

角色表:(Insert,Update,IfExist,Show,Delete)

角色模塊表:(Insert,IfExist,Delete,Show,RoleListByModuleID,ModulistByRoleID)

模塊表:(Insert,Update,IfExist,Show,Dlete,ListByRootModuleID,ListByModuleLevel)

模塊功能表:(Insert,Update,Delete,FunctionListByModuleID)

針對用戶直接獲取其所有的權限時,應該有個單獨的Procedure從視圖中Member_Role_Module_Function中獲取其對應的數(shù)據(jù),這樣就可以得到想要的東西了。

數(shù)據(jù)庫設計部分應該就這樣差不多了。我想這應該是通用的。在實際運用過程中,我個人認為應該有一些改進點:

1.模塊與功能部分,可以用字符串的形式將模塊對應的功能存在一個數(shù)據(jù)字段中,這樣可能在你的代碼編寫中可以省下較多的時間并帶來更多的便利(主要是可以用split()來代替頻繁的數(shù)據(jù)獲取業(yè)務)這個我在最初設計中沒有想到這點,有點失策.

2.針對N級模塊的權限展現(xiàn)問題,如何讓父模塊繼承子模塊的權限這個是我沒有考慮到的,不過我想應該可以用IsRootModule這個字段來作文章,可惜我還沒想到如何去整這個字段。當子模塊很多時,在前端UI展示的時候是否會出現(xiàn)很慢的情況?這個我沒有去做測試。帶有一定的風險
但在前端UI展示我還沒想到或?qū)崿F(xiàn)好的辦法,我能想到的應該是像GridViewTree那種不錯。

這個權限設計已經(jīng)在我的Project中運用,暫時沒有發(fā)現(xiàn)什么問題,而且為我以后對其它系統(tǒng)集成也很有幫助。至于如何在C#中實現(xiàn)業(yè)務,個人認為只要知道數(shù)據(jù)庫如何整的,那C#中的業(yè)務實現(xiàn)只是一個取數(shù)操作過程。下篇與大家再共同分享討論.

您可能感興趣的文章:
  • App登陸java后臺處理和用戶權限驗證
  • java web實現(xiàn)用戶權限管理
  • Oracle 用戶權限管理方法
  • php后臺多用戶權限組思路與實現(xiàn)程序代碼分享
  • Linux下SFTP用戶權限設置條件及實現(xiàn)命令
  • IIS6.0的默認權限和用戶權限設置小結
  • Linux給普通用戶加超級用戶權限的方法
  • MySQL創(chuàng)建用戶與授權及撤銷用戶權限方法
  • 復雜系統(tǒng)中的用戶權限數(shù)據(jù)庫設計解決方案
  • javaWeb用戶權限控制簡單實現(xiàn)過程

標簽:沈陽 哈密 紅河 青海 阜陽 河源 忻州 無錫

巨人網(wǎng)絡通訊聲明:本文標題《用戶權限管理設計[圖文說明]》,本文關鍵詞  用戶,權限,管理,設計,圖文,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《用戶權限管理設計[圖文說明]》相關的同類信息!
  • 本頁收集關于用戶權限管理設計[圖文說明]的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    互助| 喀喇沁旗| 香港| 京山县| 璧山县| 镇宁| 广汉市| 乳山市| 彰化市| 东光县| 福鼎市| 故城县| 安阳市| 葵青区| 浮山县| 肥城市| 阜新| 绥芬河市| 桐梓县| 盐津县| 阆中市| 义乌市| 抚顺县| 四子王旗| 忻州市| 建平县| 稷山县| 阿拉尔市| 博野县| 峨山| 涟源市| 集贤县| 会宁县| 郯城县| 新竹市| 梁山县| 阳山县| 西贡区| 敖汉旗| 巨鹿县| 广昌县|