.net5 core Razor項目實戰系列之一:項目要實現的功能及對應的數據庫設計


1)本項目是一個權限管理系統,其目的就是將Web應用中不同頁面的功能(也就是頁面中的按鈕),

比如 “新增”、“修改”、“刪除”、“查詢”、“審核”等進行權限控制,

只有給用戶設置了相應的權限才能使用對應的功能(即點擊這個按鈕),

否則按鈕將是灰色的,無法操作,效果如下圖所示:

有權限時按鈕可用:

無權限時按鈕是灰色不可用的狀態:

設置權限的頁面如下:

這里既可以針對單個用戶設置權限,也可以針對部門設置權限,

如果既對部門設置了權限,也對該部門下的單個用戶設置了權限,則取用戶的權限,忽略所屬部門的權限。

 

2)為了將關注點放在技術實現上,而不是業務設計上,我們對表的設計也盡可能的做了簡化,

只包含幾個關鍵的字段就可以了,防止分散注意力,系統要實現的功能描述如下:

  1.部門的新增修改作廢。

  2.用戶的新增修改鎖定。

  3.用戶權限的設置。

  4.日志的記錄和查詢。

 

3)對應的表結構如下:

  部門表(t_dept):

字段名 類型 說明
dept_id int 部門編號(主鍵,自增)
dept_name varchar(10) 部門名稱
is_valid smallint 1:有效(默認),0:作廢
create_time datetime 創建時間
modify_time datetime 修改時間

 

  用戶表(t_user)

字段名 類型 說明
user_id int 用戶編號(主鍵,自增)
signin_acc varchar(15) 登錄帳號
signin_pwd varchar(45) 登錄密碼
user_name varchar(10) 用戶名稱
mobile varchar(15) 聯系電話
dept_id int 所屬部門編號
dept_name varchar(10) 所屬部門名稱
is_valid smallint 1:有效,0:鎖定
create_time datetime 創建時間
modify_time datetime 修改時間

 

  權限表(t_auth)

字段名 類型 說明
auth_id int 權限編號(主鍵,自增)
target_type smallint 授權類型 1:部門,2:用戶
target_id int 用戶/部門編號
func_code varchar(50) 功能代碼
create_time datetime 創建時間
modify_time datetime 修改時間

 

  日志表(t_log)

字段名 類型 說明
log_id int 日志編號(主鍵,自增)
user_id int 操作人編號
user_name varchar(10) 操作人名字
batch_no varchar(45) 批次號(GUID字符串)
table_name varchar(45) 表名稱
table_data varchar(450) 表數據
log_time datetime 記錄時間

備注:日志表的作用是在表的字段值發生變化時候將變化前的值和變化后的值以json的格式記錄下來(以行為單位記錄),

新增時不做處理,修改時候記錄2條數據(分別是修改前的數據和修改后的數據,這兩條數據的批次號是一樣的。),

以供后續來追蹤數據的變化,而且能追蹤是哪個用戶做的操作。

 

在MySQL數據庫中將上面表的定義建立到數據庫,數據庫的名稱為 "auth_manage"。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM