<
/strong>如圖所示,通過這種關聯方式,我們可以非常清晰的看到權限表中的權限屬於哪個分欄。
現在,數據庫結構已經很清晰了,分配權限的功能以及“組”操作都已經實現。下面我們再來分析一下需求中提到的關於權限管理系統的重用性問題。
為什麼使用這種數據庫設計方式搭建起來的系統可以重用呢?
三張實體表中記錄著系統中的三個決定性元素。“權限”,“組”和“人”。而這三種元素可以任意添加,彼此之間不受影響。無論是那種類型的業務系統,這三個決定性元素是不會變的,也就意味著結構上不會變,而變的僅僅是數據。 兩張映射表中記錄著三個元素之間的關系。但這些關系完全是人為創建的,需要變化的時候,只是對數據庫中的記錄進行操作,無需改動結構。 權限分欄表中記錄著系統使用時顯示的分欄。無論是要添加分欄,修改分欄還是減少分欄,也只不過是操作記錄而已。 綜上所述,這樣設計數據庫,系統是完全可以重用的,並且經受得住“變更”考驗的。
總結:
此套系統的重點在於,三張實體表牢牢地抓住了系統的核心成分,而兩張映射表完美地映射出三張實體表之間的交互。其難點在於,理解映射表的工作,它記錄著關系,並且實現了“組”操作的概念。而系統總體的設計是本著可以在不同的MIS系統中“重用”來滿足不同系統的功能權限設置。
附錄:
權限管理系統數據表的字段設計
下面我們來看看權限管理系統的數據庫表設計,共分為六張表,如下圖:
1.3em">action表:
action表中記錄著系統中所有的動作,以及動作相關描述。
actioncolumn表:
actioncolumn表中記錄著動作的分欄,系統運行時,左側菜單欄提供了幾塊不同的功能,每一塊就是一個分欄,每添加一個分欄,
該表中的記錄就會增加一條,相對應的,左側菜單欄中也會新增機一個欄。
actiongroup表:
actiongroup表記錄著動作所在的組。
groupmanager表:
ll; LINE-HEIGHT: 1.3em">groupmanager表記錄著管理組的相關信息,每添加一個管理組,這裡的記錄就會增加一條。
mastergroup表:
mastergroup表記錄著管理員所在的管理組,由於一名管理員可能同同時屬於多個組,所以該表中關於某一名管理員的記錄可能有多條。
master表:
master表記錄著所有管理員的信息,每添加一個管理員,該表就會增加一條記錄。