前言
由於技術轉型, 目前大部分工作都是WPF為主, 但是趨於如今想在網絡上找一套能夠滿意的WPF權限管理框架太難, 因為WinForm那時候是有一套改寫過的權限框架,
所以數據庫設計這塊已經有了一個成熟的設計,至於WPF客戶端這塊,技術選型也基本確定:MVVM模式, Entity,界面層的UI就使用開源的MaterialDesign組件。
DB Design
根據目前的設計中, 整體框架有:模板管理、菜單管理、用戶管理、權限分類、組與組用戶、組權限、系統日誌、數據字典。如下是整個PowerDesign的設計結構:
注: 下面添加的一部分編碼、附件則是用於擴展的結構。核心的則是由上面介紹的幾個模塊組成
權限模塊構成
權限控制的原理
以一個簡單的功能舉個例子, 假設用戶管理窗口具備一下的功能,每個功能都對應相應的權限值:
當注冊的用戶登錄時,首次會給其設置組, 所以我們只需要給組分配指定的訪問權限, 首先,假設給當前分配的組設置權限為(新增、編輯、刪除), 對應的權限值則是: 1+2+4=7。 那么用戶登陸后就取得對應的權限值 7 , 當打開用戶管理時, 針對指定的功能進行權限值邏輯運算。如下:
當進行運算失敗, 則選擇隱藏或者禁用該功能。
----模塊設計理念
權限模塊
由菜單功能細分到每個功能按鈕的權限控制、所有的功能定義在權限分類表中。最後通過組的方式進行用戶的權限配置。
日誌級別
通過日誌字段表定義需要進行日誌記錄的Table,根據數據庫配置的日誌字段,細分到字段級別的日誌管理。
字典管理
一個字典表, 控制所有的字典類型數據, 便於集中管理
編碼規則
針對不同的業務, 生成指定規則的編碼流水號。