.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"。
分类:
.net5.0 Razor 系列
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人