.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"。

 

posted @ 2021-04-30 23:54  屏风马  阅读(809)  评论(0编辑  收藏  举报