久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

實現(xiàn)業(yè)務系統(tǒng)中的用戶權(quán)限管理--設計篇

 中毒的蘋果 2006-05-16
 

 

 

實現(xiàn)業(yè)務系統(tǒng)中的用戶權(quán)限管理--設計篇

 

  B/S系統(tǒng)中的權(quán)限比C/S中的更顯的重要,,C/S系統(tǒng)因為具有特殊的客戶端,,所以訪問用戶的權(quán)限檢測可以通過客戶端實現(xiàn)或通過客戶端+服務器檢測實現(xiàn),而B/S中,,瀏覽器是每一臺計算機都已具備的,,如果不建立一個完整的權(quán)限檢測,那么一個“非法用戶”很可能就能通過瀏覽器輕易訪問到B/S系統(tǒng)中的所有功能,。因此B/S業(yè)務系統(tǒng)都需要有一個或多個權(quán)限系統(tǒng)來實現(xiàn)訪問權(quán)限檢測,,讓經(jīng)過授權(quán)的用戶可以正常合法的使用已授權(quán)功能,而對那些未經(jīng)授權(quán)的“非法用戶”將會將他們徹底的“拒之門外”,。下面就讓我們一起了解一下如何設計可以滿足大部分B/S系統(tǒng)中對用戶功能權(quán)限控制的權(quán)限系統(tǒng),。

 

需求陳述

  • 不同職責的人員,對于系統(tǒng)操作的權(quán)限應該是不同的,。優(yōu)秀的業(yè)務系統(tǒng),,這是最基本的功能。

     

  • 可以對“組”進行權(quán)限分配,。對于一個大企業(yè)的業(yè)務系統(tǒng)來說,,如果要求管理員為其下員工逐一分配系統(tǒng)操作權(quán)限的話,是件耗時且不夠方便的事情,。所以,,系統(tǒng)中就提出了對“組”進行操作的概念,將權(quán)限一致的人員編入同一組,,然后對該組進行權(quán)限分配,。

     

  • 權(quán)限管理系統(tǒng)應該是可擴展的。它應該可以加入到任何帶有權(quán)限管理功能的系統(tǒng)中。就像是組件一樣的可以被不斷的重用,,而不是每開發(fā)一套管理系統(tǒng),,就要針對權(quán)限管理部分進行重新開發(fā)。

     

  • 滿足業(yè)務系統(tǒng)中的功能權(quán)限,。傳統(tǒng)業(yè)務系統(tǒng)中,,存在著兩種權(quán)限管理,其一是功能權(quán)限的管理,,而另外一種則是資源權(quán)限的管理,,在不同系統(tǒng)之間,功能權(quán)限是可以重用的,,而資源權(quán)限則不能,。

關于設計

  借助NoahWeb的動作編程理念,在設計階段,,系統(tǒng)設計人員無須考慮程序結(jié)構(gòu)的設計,,而是從程序流程以及數(shù)據(jù)庫結(jié)構(gòu)開始入手。為了實現(xiàn)需求,,數(shù)據(jù)庫的設計可謂及其重要,,無論是“組”操作的概念,還是整套權(quán)限管理系統(tǒng)的重用性,,都在于數(shù)據(jù)庫的設計,。

我們先來分析一下數(shù)據(jù)庫結(jié)構(gòu):

  首先,action表(以下簡稱為“權(quán)限表”),,gorupmanager表(以下簡稱為“管理組表”),,以及master表(以下簡稱為“人員表”),是三張實體表,,它們依次記錄著“權(quán)限”的信息,,“管理組”的信息和“人員”的信息。如下圖:

  這三個表之間的關系是多對多的,,一個權(quán)限可能同時屬于多個管理組,,一個管理組中也可能同時包含多個權(quán)限。同樣的道理,,一個人員可能同時屬于多個管理組,,而一個管理組中也可能同時包含多個人員。如下圖:

  由于這三張表之間存在著多對多的關系,,那么它們之間的交互,,最好使用另外兩張表來完成。而這兩張表起著映射的作用,,分別是“actiongroup”表(以下簡稱“權(quán)限映射表”)和“mastergroup”表(以下簡稱“人員映射表”),前者映射了權(quán)限表與管理組表之間的交互。后者映射了人員表與管理組表之間的交互,。如下圖:

  另外,,還需要一張表來控制系統(tǒng)運行時左側(cè)菜單中的權(quán)限分欄,也就是“權(quán)限分欄表”,,如下圖:

  根據(jù)上面的分析,,我們進行數(shù)據(jù)庫結(jié)構(gòu)設計,如下圖:

  點擊這里查看權(quán)限管理系統(tǒng)數(shù)據(jù)表字段設計

 

  為了能夠進行良好的分析,,我們將數(shù)據(jù)庫結(jié)構(gòu)圖拆分開來,,三張實體表的作用已經(jīng)很清晰,現(xiàn)在我們來看一下兩張映射表的作用,。

一 權(quán)限映射表 如下圖:

  首先,,我們來了解一下權(quán)限映射表管理組表以及權(quán)限表之間的字段關聯(lián)。

  看圖中的紅圈,,先看gorupid字段相關聯(lián),,這種關聯(lián)方式在實際數(shù)據(jù)庫中的表現(xiàn)如下圖:

  如圖中所示,管理組表中“超級管理員”的groupid為1,,那么權(quán)限映射表中groupid為1的權(quán)限也就是“超級管理員”所擁有的權(quán)限,。

  使用groupid字段關聯(lián),是為了查到一個管理組能夠執(zhí)行的權(quán)限有哪些,。但這些權(quán)限的詳細信息卻是action字段關聯(lián)所查詢到的,。

  action字段相關聯(lián)在數(shù)據(jù)庫中的表現(xiàn)如下圖:

  通過這種關聯(lián),才查詢到權(quán)限映射表之中那些權(quán)限的詳細信息,。綜合起來,,我們就知道了一個管理組可以執(zhí)行的權(quán)限有哪些,以及這些權(quán)限的詳細信息是什么,。

  或許你會問,,為什么不使用actionid字段相關聯(lián)呢?因為:

  • 權(quán)限表中的id字段在經(jīng)過多次的數(shù)據(jù)庫操作之后可能會發(fā)生更改,。
  • 權(quán)限映射表中僅僅記錄著一個管理組可以執(zhí)行的權(quán)限,。
  • 一旦權(quán)限表中的id更改,那么權(quán)限映射表中的記錄也就更改了,。
  • 一個管理組可以執(zhí)行的權(quán)限勢必將出錯,,這是非常不希望的。

  考慮到上面的情況,,所以應該使用action字段相關聯(lián),,因為:

  • 權(quán)限表中,id可能發(fā)生變化,,而action字段卻是在任何情況下也不可能發(fā)生變化的,。
  • 權(quán)限映射表中記錄的action字段也就不會變。
  • 一個管理組可以執(zhí)行的權(quán)限就不會出錯了。

二 人員映射表 如下圖:

  我們來了解一下人員映射表管理組表以及人員表之間的字段關聯(lián),,如下圖:

 

  看圖中的紅圈部分,,先看groupid字段關聯(lián),這種關聯(lián)方式在數(shù)據(jù)庫中的表現(xiàn)如下圖:

  如圖,,“超級管理員”組的groupid為1,,我們再看人員映射表,admin屬于超級管理員組,,而administrator屬于超級管理員組,,同時也屬于管理員組。

  使用這種關聯(lián)方式,,是為了查到一個管理組中的人員有誰,。和上面一樣,人員的詳細信息是靠id字段(人員映射表中是masterid字段)關聯(lián)查詢到的,。

  id字段(人員映射表中是masterid字段)關聯(lián)表現(xiàn)在數(shù)據(jù)庫中的形式如下圖:

  一個人員可能同時屬于多個“管理組”,,如圖中,administrator就同時屬于兩個“管理組”,。所以,,在人員映射表中關于administrator的記錄就會是兩條。

  這種關聯(lián)方式才查詢到管理組中人員的詳細信息有哪些,。綜合起來,,才可以知道一個管理組中的人員有誰,以及這個人員的詳細信息,。

  再結(jié)合上面談到的權(quán)限表權(quán)限映射表,,就實現(xiàn)了需求中的“組”操作,如下圖:

  其實,,管理組表中僅僅記錄著組的基本信息,,如名稱,組id等等,。至于一個組中人員的詳細信息,,以及該組能夠執(zhí)行的權(quán)限的詳細信息,都記錄在人員表權(quán)限表中,。兩張映射表才真正記錄著一個組有哪些人員,,能夠執(zhí)行哪些權(quán)限。通過兩張映射表的銜接,,三張實體表之間的交互才得以實現(xiàn),,從而完成了需求中提到的“組”操作

  我們再來看一下權(quán)限分欄表權(quán)限表之間的交互,。這兩張表之間的字段關聯(lián)如下圖:

  兩張表使用了actioncolumnid字段相關聯(lián),,這種關聯(lián)方式在數(shù)據(jù)庫中的表現(xiàn)如下圖:

  如圖所示,,通過這種關聯(lián)方式,我們可以非常清晰的看到權(quán)限表中的權(quán)限屬于哪個分欄,。

  現(xiàn)在,,數(shù)據(jù)庫結(jié)構(gòu)已經(jīng)很清晰了,,分配權(quán)限的功能以及“組”操作都已經(jīng)實現(xiàn),。下面我們再來分析一下需求中提到的關于權(quán)限管理系統(tǒng)的重用性問題。

  為什么使用這種數(shù)據(jù)庫設計方式搭建起來的系統(tǒng)可以重用呢,?

  • 三張實體表中記錄著系統(tǒng)中的三個決定性元素,。“權(quán)限”,“組”和“人”,。而這三種元素可以任意添加,,彼此之間不受影響。無論是那種類型的業(yè)務系統(tǒng),,這三個決定性元素是不會變的,,也就意味著結(jié)構(gòu)上不會變,而變的僅僅是數(shù)據(jù),。
  • 兩張映射表中記錄著三個元素之間的關系,。但這些關系完全是人為創(chuàng)建的,需要變化的時候,,只是對數(shù)據(jù)庫中的記錄進行操作,,無需改動結(jié)構(gòu)。
  • 權(quán)限分欄表中記錄著系統(tǒng)使用時顯示的分欄,。無論是要添加分欄,,修改分欄還是減少分欄,也只不過是操作記錄而已,。

  綜上所述,,這樣設計數(shù)據(jù)庫,系統(tǒng)是完全可以重用的,,并且經(jīng)受得住“變更”考驗的,。

總結(jié):

  此套系統(tǒng)的重點在于,三張實體表牢牢地抓住了系統(tǒng)的核心成分,,而兩張映射表完美地映射出三張實體表之間的交互,。其難點在于,理解映射表的工作,,它記錄著關系,,并且實現(xiàn)了“組”操作的概念。而系統(tǒng)總體的設計是本著可以在不同的MIS系統(tǒng)中“重用”來滿足不同系統(tǒng)的功能權(quán)限設置,。

附錄:

權(quán)限管理系統(tǒng)數(shù)據(jù)表的字段設計

  下面我們來看看權(quán)限管理系統(tǒng)的數(shù)據(jù)庫表設計,,共分為六張表,,如下圖:

action表:

  action表中記錄著系統(tǒng)中所有的動作,以及動作相關描述,。

actioncolumn表:

  actioncolumn表中記錄著動作的分欄,,系統(tǒng)運行時,左側(cè)菜單欄提供了幾塊不同的功能,,每一塊就是一個分欄,,每添加一個分欄,該表中的記錄就會增加一條,相對應的,,左側(cè)菜單欄中也會新增機一個欄,。

actiongroup表:

  actiongroup表記錄著動作所在的組。

groupmanager表:

  groupmanager表記錄著管理組的相關信息,,每添加一個管理組,,這里的記錄就會增加一條。

mastergroup表:

  mastergroup表記錄著管理員所在的管理組,,由于一名管理員可能同同時屬于多個組,,所以該表中關于某一名管理員的記錄可能有多條。

master表:

  master表記錄著所有管理員的信息,,每添加一個管理員,,該表就會增加一條記錄。

 

  

  歡迎繼續(xù)閱讀:實現(xiàn)業(yè)務系統(tǒng)中的用戶權(quán)限管理--實現(xiàn)篇

 

 

 




             NoahWeb因您而精彩,!
 

 

    本站是提供個人知識管理的網(wǎng)絡存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多