<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 147  文章 - 71  trackbacks - 0
    <2009年6月>
    31123456
    78910111213
    14151617181920
    21222324252627
    2829301234
    567891011

    常用鏈接

    留言簿(1)

    隨筆分類(146)

    隨筆檔案(147)

    文章分類(28)

    文章檔案(28)

    喜歡的Blog

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    用戶管理權限設計一直是大家討論的熱點,因為幾乎涉及到每一個開發的業務系統。我找了很多很多的資料,大家的核心基本上都是一樣的:基于角色管理. 用戶,角色,模塊,權限的相互組合,就可以形成一個強大的權限管理系統。

    最近在一個項目中設計的一個用戶權限的設計,很樂意與大家一起討論及分享.

    設計思路

    我的設計思路或者說是我想要實現的功能

    1.用戶的權限通過角色來控制,一個用戶可以擁有多個角色.

    2.用戶擁有不同角色時,其權限應該是多個角色相互的補集.

    3.一個角色擁有多個模塊

    4.用戶的前臺菜單顯示根據角色所擁有的模塊所決定,不同的用戶在前端顯示的操作菜單是不一樣的。

    5.頁面中的功能按鈕根據模塊中所包含的功能所定義,通過模塊及角色所擁有的權限進行控制

    6.可看某個模塊有哪些用戶,哪些對應角色,并對其進行特殊權限設置.

    7.可以針對單個用戶進行特殊設置

    我在我的Project中,基本上達到了以上的效果及功能,但在實際過程中發現有些不足之處。因為整個權限設計是基于數據庫來設計中,所以數據的讀取當數據量大時(我所說的數據量是以萬以上來計)可能對性能有一定的影響。但對于一般來說,幾千用戶之類的我想還是可以承受的。我會在后面說明不足之處。

    數據庫設計

    基本設計:

    1.首先,設計數據庫.

    數據庫的設計其實我估計大家都很熟悉了

    基本表:用戶表,角色表,模塊表,功能表,管理員表.如果涉及到企業性質的,可能會根據需要加上組織結構表,群組表等其它輔助表

    用戶

     

    管理員

    角色

    模塊

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

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

    業務表:用戶-角色表 模塊-功能表 角色-模塊表

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

    用戶-角色:

    角色-模塊:

    模塊-功能:

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

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

     

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

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

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

    用戶表:(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中獲取其對應的數據,這樣就可以得到想要的東西了。

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

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

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

    這個權限設計已經在我的Project中運用,暫時沒有發現什么問題,而且為我以后對其它系統集成也很有幫助。至于如何在C#中實現業務,個人認為只要知道數據庫如何整的,那C#中的業務實現只是一個取數操作過程。

    posted on 2009-06-26 20:24 飛翔天使 閱讀(33591) 評論(9)  編輯  收藏 所屬分類: SQL

    FeedBack:
    # re: 用戶權限管理設計 2012-11-05 11:08 李瑤
    你好我很好  回復  更多評論
      
    # re: 用戶權限管理設計 2013-01-17 11:26 Mr.hua
    模塊,這一塊的另一個表是怎么樣的?  回復  更多評論
      
    # re: 用戶權限管理設計 2013-05-23 10:44 zl
    貌似表關聯有點多了 操作不是很方便  回復  更多評論
      
    # re: 用戶權限管理設計 2013-05-23 10:45 zl
    貌似表關聯有點多了 操作不是很方便

    我自己做的話 會把角色跟功能直接關聯  回復  更多評論
      
    # re: 用戶權限管理設計 2013-08-16 17:39 Chuck
    我在想,如果你把關系字段全部放在一個字段里面,如果你要刪除其中一個怎么搞啊?  回復  更多評論
      
    # re: 用戶權限管理設計 2013-09-12 18:18 LDL
    @Chuck
    基本是這樣的,我也做過權限的,權限是比較復雜的,有外鍵關聯才能突出它的限制,關于刪除,可以用級聯,房主也說了一些不足之處!  回復  更多評論
      
    # re: 用戶權限管理設計 2014-05-27 13:18 2
    我  回復  更多評論
      
    # re: 用戶權限管理設計 2014-06-04 17:39 alading
    @Chuck
    刪除其實可以用狀態作為標記的  回復  更多評論
      
    # re: 用戶權限管理設計[未登錄] 2014-08-19 12:03 Ray
    博主能收下你這里的用戶表和管理員表在這分別是做什么用的?
    我不太清楚管理員表在這的作用。  回復  更多評論
      
    主站蜘蛛池模板: 99在线视频免费| 中文字幕免费观看视频| 91麻豆国产免费观看| 亚洲色婷婷一区二区三区| 国产精品福利在线观看免费不卡| 亚洲AV无码乱码在线观看牲色| 猫咪免费人成网站在线观看入口| 四虎影视在线永久免费看黄| 在线亚洲v日韩v| 亚洲精品第一国产综合境外资源 | 亚洲成年人免费网站| 亚洲精品在线免费看| 亚洲制服丝袜一区二区三区| 国产成人无码免费看视频软件| 亚洲av无码片在线观看| 我要看WWW免费看插插视频| 久久久久亚洲国产AV麻豆| 亚洲欧洲国产成人综合在线观看| WWW免费视频在线观看播放| 亚洲av之男人的天堂网站| 久久成人国产精品免费软件| 亚洲成年网站在线观看| 国产成人免费片在线视频观看| 国产高清对白在线观看免费91 | 四虎1515hm免费国产| 中文字幕免费在线观看动作大片| 亚洲国产精品无码专区在线观看| 99精品一区二区免费视频| 亚洲av永久综合在线观看尤物| 无码欧精品亚洲日韩一区夜夜嗨| 丝袜足液精子免费视频| 亚洲国产精品久久人人爱| 免费人成在线观看播放国产| 你是我的城池营垒免费看| 亚洲H在线播放在线观看H| 亚洲 国产 图片| 2022久久国产精品免费热麻豆| 亚洲精品无码久久久久A片苍井空| 国产偷国产偷亚洲高清日韩| 亚洲精品视频在线免费| caoporn国产精品免费|