权限设计 - swiftdo/vapor-blog GitHub Wiki

涉及表:用户、角色、权限、菜单

关系:

  • 用户有多个角色,一个角色会被多个用户所拥有
  • 一个角色有多个权限, 一个权限会被多个角色所拥有
  • 一个权限可以绑定多个菜单,一个菜单可能被多个权限绑定(菜单这块建议绑定的时候是一对一)

角色表

表字段 说明
id 主键
name 角色名字
created_time 创建时间
updated_time 更新时间

权限表

表字段 说明
id 主键
name 权限名字
code 权限码,比如:view_users, edit_user
created_time 创建时间
updated_time 更新时间

用户角色表

表字段 说明
id 主键
role_id 角色id
user_id 用户id
created_time 创建时间
updated_time 更新时间

角色权限表

表字段 说明
id 主键
role_id 角色id
permission_id 权限id
created_time 创建时间
updated_time 更新时间

菜单表

菜单表,在展示后台页面的时候,管理员很普通用户的菜单是不一样的。所以需要根据用户的权限不同呈现不同的菜单。

表字段 说明
id 主键
name 菜单名
parent_id 父菜单
weight 权重
created_time 创建时间
updated_time 更新时间

权限菜单表

表字段 说明
id 主键
permission_id 权限id
menu_id 菜单id
created_time 创建时间
updated_time 更新时间

参考

modb_20210418_4eb4a37a-a038-11eb-a0ed-00163e068ecd