后台项目 Express-Mysql-Vue3-TS-Pinia 角色管理-角色表

171 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第18天,点击查看活动详情

角色管理-角色表

引言

通过之前一段时间 ExpressMysql 的学习

这里尝试来搭建一个 后台系统 来巩固下学习的技术。

角色管理-角色表

上一节,将我们的 角色管理 的页面搭建初步的搭建完毕。

下面进行后端 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 做出一个 后台系统 项目

了解了 角色用户菜单 之间的关系,并创建 角色表