携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第18天,点击查看活动详情
角色管理-角色表
引言
通过之前一段时间 Express 和 Mysql 的学习
这里尝试来搭建一个 后台系统 来巩固下学习的技术。
角色管理-角色表
上一节,将我们的 角色管理 的页面搭建初步的搭建完毕。
下面进行后端 Express 逻辑处理,以及数据库 角色表 的设计
要想设计 角色表 先知道,为什么要有 角色 这个东西
角色表概念
角色 是 用户 能够拿到 菜单 的重要一环
为什么会有 角色 产生
举个例子:
-
如果此时没有 角色,那么新增一个 用户,我们就给这个 用户 来进行配置 菜单 操作。好像一听,也没什么,很合理。
-
但是此时如果是新增一个 菜单 的情况呢?
-
那么我们就需要 每个用户 都要添加这个新增的 菜单,任务量就很大了
-
况且,很大情况下,大部分用户 的 菜单 配置是一样的
那么我们就需要中间过渡的一个纽带,这就是 角色
此时 角色 和 用户 之间的关系为:
- 多个用户 对应 一个角色
- 一个用户 也可以拥有 多个角色
角色 和 菜单 之间的关系就很简单了:
- 一个角色 对应 一类菜单
角色表
上面介绍了 角色 的一些概念性问题,有助于我们理解和设计后面的 角色表
在 Express 中连接我们的 Mysql 数据库,来创建我们的 角色表,下面是表结构:
const createTableRole = `
create table if not exists role(
id int primary key auto_increment comment '主键',
name varchar(255) default '' comment '角色名',
description varchar(255) default '' comment '描述信息',
menuArrId varchar(255) not null default '[]' comment '列表-菜单id',
create_time datetime not null default current_timestamp comment '创建时间'
) comment '角色表';
`
const init = (req, res, next) => {
try {
const createTableRole = sqlAll.createTableRole
const sqlArr = []
const callback = (error, results) => {
if (error) {
console.log('连接出错')
return
}
res.send({
list: results,
message: '创建成功'
})
}
sqlConnect(createTableRole, sqlArr, callback)
} catch (err) {
next(err)
}
}
此时我们的 角色表 就创建成功了
总结
通过 Express-Mysql-Vue3-TS-Pinia 做出一个 后台系统 项目
了解了 角色、 用户、 菜单 之间的关系,并创建 角色表