NestJs 权限管理系统二、数据库设计

661 阅读2分钟

在正式开始使用数据库之前,应该先捋清楚改怎么设计表。

我们这个系统是权限后台管理系统,采用RBAC(Role-Based Access Control,基于角色的访问控制)是一种常见的访问控制模型,用于限制用户对资源的访问和操作。RBAC将用户分配到不同的角色中,而每个角色分配到不同的权限,从而控制用户对资源的访问和操作。

在RBAC中,角色是一种逻辑上的概念,用于描述用户的职能和权限。不同的角色可以分配不同的权限,例如读取、写入、删除等。用户被分配到一个或多个角色中,而不是直接分配到具体的权限中。

那我们这个系统说明,

  1. 用户类(User):表示系统中的用户,包括用户的姓名、账号、密码等属性。

  2. 菜单类(Menu):表示系统中的菜单,包括菜单的名称、描述、URL等属性。

  3. 角色类(Role):表示系统中的角色,包括角色的名称、描述、菜单等属性。

  4. 部门类(Department):表示系统中的部门,包括部门的名称、描述、上级部门等属性。

在这个权限管理系统中,用户可以被分配到一个或多个角色中,而每个角色可以分配到一组菜单中。菜单表示具体的操作,例如查看、编辑、删除等。部门表示组织结构,可以用于限制用户的访问范围。

在这个系统中,可以使用RBAC来控制用户对菜单的访问和操作,并使用部门来限制用户的访问范围。具体来说,可以将用户分配到不同的角色中,而每个角色分配到不同的菜单中,从而控制用户对菜单的访问和操作。部门可以与角色进行关联,从而限制用户只能访问该部门及其下属部门的数据和资源。

例如,一个管理员可以被分配到管理员角色中,而管理员角色可以分配到管理用户、管理角色、管理菜单等菜单中。管理员也可以被分配到某个部门中,例如财务部门,从而限制管理员只能访问和管理财务部门的数据和资源。这样,管理员就可以根据自己的角色和所在部门的权限来管理系统中的用户、角色、菜单等资源,同时也只能访问和管理所在部门的数据和资源。