Files
HertzAdmin-SpringBoot/数据库说明文档.md
2026-01-20 15:28:01 +08:00

4.4 KiB
Raw Blame History

Hertz 权限管理系统数据库说明文档

1. 数据库概述

  • 数据库名称: hertz_springboot
  • 数据库类型: MySQL
  • 字符集: utf8mb4
  • 排序规则: utf8mb4_general_ci (推荐)

2. ER 图设计概要

系统主要包含 5 张表,采用标准的 RBAC用户-角色-权限)设计模型:

  • sys_user: 用户表
  • sys_role: 角色表
  • sys_menu: 菜单/权限表
  • sys_user_role: 用户-角色关联表
  • sys_role_menu: 角色-菜单关联表

3. 表结构详解

3.1 系统用户表 (sys_user)

存储系统的登录用户信息。

字段名 类型 长度 允许空 默认值 说明
id bigint 20 NO AUTO_INCREMENT 主键 ID
username varchar 50 NO 用户名 (唯一)
password varchar 100 NO 加密密码 (BCrypt)
nickname varchar 50 NO 用户昵称
avatar_path varchar 255 YES NULL 头像路径
phone varchar 20 YES NULL 手机号
email varchar 100 YES NULL 邮箱
gender tinyint 1 YES 0 0-未知 1-男 2-女
status tinyint 4 YES 1 0-禁用 1-启用
created_at datetime YES CURRENT_TIMESTAMP 创建时间
updated_at datetime YES CURRENT_TIMESTAMP 更新时间

3.2 系统角色表 (sys_role)

存储系统的角色信息。

字段名 类型 长度 允许空 默认值 说明
id bigint 20 NO AUTO_INCREMENT 主键 ID
role_key varchar 50 NO 角色标识 (唯一,如 ADMIN)
role_name varchar 50 NO 角色名称 (如 管理员)
status tinyint 4 YES 1 0-禁用 1-启用
created_at datetime YES CURRENT_TIMESTAMP 创建时间
updated_at datetime YES CURRENT_TIMESTAMP 更新时间

3.3 系统菜单表 (sys_menu)

存储菜单和按钮权限信息,支持树形结构。

字段名 类型 长度 允许空 默认值 说明
id bigint 20 NO AUTO_INCREMENT 主键 ID
parent_id bigint 20 YES 0 父菜单 ID (0为顶级)
type varchar 10 NO 菜单类型: D-目录 M-菜单 B-按钮
name varchar 50 NO 菜单名称/按钮名称
path varchar 200 YES NULL 路由路径 (前端路由)
component varchar 200 YES NULL 组件路径 (Vue组件)
perms varchar 100 YES NULL 权限标识 (如 system:user:view)
icon varchar 100 YES NULL 菜单图标
sort int 11 YES 0 排序 (数值越小越靠前)
visible tinyint 4 YES 1 0-隐藏 1-显示
status tinyint 4 YES 1 0-禁用 1-启用
created_at datetime YES CURRENT_TIMESTAMP 创建时间
updated_at datetime YES CURRENT_TIMESTAMP 更新时间

3.4 用户角色关联表 (sys_user_role)

用户与角色的多对多关系表。

字段名 类型 长度 允许空 默认值 说明
id bigint 20 NO AUTO_INCREMENT 主键 ID
user_id bigint 20 NO 用户 ID
role_id bigint 20 NO 角色 ID

3.5 角色菜单关联表 (sys_role_menu)

角色与菜单(权限)的多对多关系表。

字段名 类型 长度 允许空 默认值 说明
id bigint 20 NO AUTO_INCREMENT 主键 ID
role_id bigint 20 NO 角色 ID
menu_id bigint 20 NO 菜单 ID

4. 初始数据说明

系统初始化脚本 (schema.sql) 会预置以下数据:

  1. 初始角色:

    • ADMIN: 超级管理员,拥有所有权限。
  2. 初始菜单结构:

    • 仪表盘
    • 系统管理
      • 用户管理
      • 角色管理
      • 菜单管理
  3. 初始用户:

    • hertz: 管理员账号,已绑定 ADMIN 角色。
    • demo: 演示账号。

5. 数据字典与枚举

  • 用户/角色/菜单状态 (status):

    • 1: 启用 (Normal)
    • 0: 禁用 (Disabled)
  • 菜单类型 (type):

    • D: 目录 (Directory) - 不对应具体页面,仅用于分组
    • M: 菜单 (Menu) - 对应具体的前端页面
    • B: 按钮 (Button) - 页面内的功能按钮,用于权限控制
  • 性别 (gender):

    • 0: 未知
    • 1: 男
    • 2: 女