亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

用戶權(quán)限管理設(shè)計(jì)[圖文說明]

 更新時(shí)間:2008年12月19日 12:34:48   作者:  
用戶管理權(quán)限設(shè)計(jì)一直是大家討論的熱點(diǎn),因?yàn)閹缀跎婕暗矫恳粋€(gè)開發(fā)的業(yè)務(wù)系統(tǒng)。我找了很多很多的資料,大家的核心基本上都是一樣的:基于角色管理. 用戶,角色,模塊,權(quán)限的相互組合,就可以形成一個(gè)強(qiáng)大的權(quán)限管理系統(tǒng)。
最近在一個(gè)項(xiàng)目中設(shè)計(jì)的一個(gè)用戶權(quán)限的設(shè)計(jì),很樂意與大家一起討論及分享.
設(shè)計(jì)思路
我的設(shè)計(jì)思路或者說是我想要實(shí)現(xiàn)的功能
1.用戶的權(quán)限通過角色來控制,一個(gè)用戶可以擁有多個(gè)角色.
2.用戶擁有不同角色時(shí),其權(quán)限應(yīng)該是多個(gè)角色相互的補(bǔ)集.
3.一個(gè)角色擁有多個(gè)模塊
4.用戶的前臺菜單顯示根據(jù)角色所擁有的模塊所決定,不同的用戶在前端顯示的操作菜單是不一樣的。
5.頁面中的功能按鈕根據(jù)模塊中所包含的功能所定義,通過模塊及角色所擁有的權(quán)限進(jìn)行控制
6.可看某個(gè)模塊有哪些用戶,哪些對應(yīng)角色,并對其進(jìn)行特殊權(quán)限設(shè)置.
7.可以針對單個(gè)用戶進(jìn)行特殊設(shè)置
我在我的Project中,基本上達(dá)到了以上的效果及功能,但在實(shí)際過程中發(fā)現(xiàn)有些不足之處。因?yàn)檎麄€(gè)權(quán)限設(shè)計(jì)是基于數(shù)據(jù)庫來設(shè)計(jì)中,所以數(shù)據(jù)的讀取當(dāng)數(shù)據(jù)量大時(shí)(我所說的數(shù)據(jù)量是以萬以上來計(jì))可能對性能有一定的影響。但對于一般來說,幾千用戶之類的我想還是可以承受的。我會在后面說明不足之處。
數(shù)據(jù)庫設(shè)計(jì)
基本設(shè)計(jì):
1.首先,設(shè)計(jì)數(shù)據(jù)庫.
數(shù)據(jù)庫的設(shè)計(jì)其實(shí)我估計(jì)大家都很熟悉了
基本表:用戶表,角色表,模塊表,功能表,管理員表.如果涉及到企業(yè)性質(zhì)的,可能會根據(jù)需要加上組織結(jié)構(gòu)表,群組表等其它輔助表
用戶

 

管理員

角色

模塊

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

功能表(功能表就是模塊對應(yīng)的功能:增加,刪除,修改,詳細(xì),列表,瀏覽,導(dǎo)出,導(dǎo)入之類的)

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

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

用戶-角色:

角色-模塊:

模塊-功能:

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

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

 

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

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

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

用戶表:(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)

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

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

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

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

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

相關(guān)文章

  • VSCODE添加open with code實(shí)現(xiàn)右鍵打開文件夾

    VSCODE添加open with code實(shí)現(xiàn)右鍵打開文件夾

    這篇文章主要介紹了VSCODE添加open with code實(shí)現(xiàn)右鍵打開文件夾,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Skywalking-agent調(diào)試說明以trace-ignore為例

    Skywalking-agent調(diào)試說明以trace-ignore為例

    這篇文章主要為大家介紹了以trace-ignore為例的Skywalking-agent調(diào)試說明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • 使用?Loki?實(shí)現(xiàn)?Kubernetes?容器日志監(jiān)控的方法

    使用?Loki?實(shí)現(xiàn)?Kubernetes?容器日志監(jiān)控的方法

    Loki?是由?Grafana?Labs?團(tuán)隊(duì)開發(fā)的,基于?Go?語言實(shí)現(xiàn),是一個(gè)水平可擴(kuò)展,高可用性,多租戶的日志聚合系統(tǒng)。它的設(shè)計(jì)非常經(jīng)濟(jì)高效且易于操作,這篇文章主要介紹了使用?Loki?實(shí)現(xiàn)?Kubernetes?容器日志監(jiān)控的相關(guān)知識,感興趣的朋友一起看看吧
    2022-05-05
  • 詳解Git建立本地倉庫的兩種方法

    詳解Git建立本地倉庫的兩種方法

    這篇文章主要介紹了詳解Git建立本地倉庫的兩種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • ffmpeg網(wǎng)頁視頻流m3u8 ts實(shí)現(xiàn)視頻下載

    ffmpeg網(wǎng)頁視頻流m3u8 ts實(shí)現(xiàn)視頻下載

    這篇文章主要為大家介紹了ffmpeg網(wǎng)頁視頻流m3u8 ts實(shí)現(xiàn)視頻下載詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • 算法系列15天速成 第二天 七大經(jīng)典排序【中】

    算法系列15天速成 第二天 七大經(jīng)典排序【中】

    今天說的是選擇排序,包括“直接選擇排序”和“堆排序”
    2013-11-11
  • Git的簡單理解及基礎(chǔ)操作命令詳解

    Git的簡單理解及基礎(chǔ)操作命令詳解

    Git是一款免費(fèi)、開源的、用Linux內(nèi)核開發(fā)的分布式版本控制系統(tǒng)。下面通過本文給大家分享Git的簡單理解及基礎(chǔ)操作命令,需要的朋友參考下吧
    2017-10-10
  • Git的配置及文件傳輸方法圖文詳解

    Git的配置及文件傳輸方法圖文詳解

    這篇文章主要介紹了Git的配置及文件傳輸方法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 如何讓vsCode顯示中文界面

    如何讓vsCode顯示中文界面

    vscode默認(rèn)的語言是英文,這給使用者帶來了一定的挑戰(zhàn),現(xiàn)在小編就來告訴你如何將vscode設(shè)置成中文。
    2020-01-01
  • git add -A 和 git add . 的區(qū)別詳解

    git add -A 和 git add . 的區(qū)別詳解

    這篇文章主要介紹了git add -A 和 git add . 的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07

最新評論