智慧教务系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

5.9 KiB

school_sys_menu 表文档

表概述

表名: school_sys_menu
功能: 系统菜单管理表,负责管理教务系统中的菜单结构、权限控制、导航层级、菜单图标等系统界面组织功能

字段说明

Field	Type	Collation	Null	Key	Default	Extra	Privileges	Comment
id	int unsigned	NULL	NO	PRI	NULL	auto_increment	select,insert,update,references	菜单ID
app_type	varchar(255)	utf8mb4_general_ci	NO		admin		select,insert,update,references	应用类型
menu_name	varchar(32)	utf8mb4_general_ci	NO				select,insert,update,references	菜单名称
menu_short_name	varchar(50)	utf8mb4_general_ci	NO				select,insert,update,references	菜单短标题
menu_key	varchar(255)	utf8mb4_general_ci	NO				select,insert,update,references	菜单标识(菜单输入,接口自动生成)
parent_key	varchar(255)	utf8mb4_general_ci	NO				select,insert,update,references	父级key
menu_type	tinyint	NULL	NO		1		select,insert,update,references	菜单类型 0目录 1菜单 2按钮
icon	varchar(500)	utf8mb4_general_ci	NO				select,insert,update,references	图标 菜单有效
api_url	varchar(100)	utf8mb4_general_ci	NO				select,insert,update,references	api接口地址
router_path	varchar(128)	utf8mb4_general_ci	NO				select,insert,update,references	菜单路由地址 前端使用
view_path	varchar(255)	utf8mb4_general_ci	NO				select,insert,update,references	菜单文件地址
methods	varchar(10)	utf8mb4_general_ci	NO				select,insert,update,references	提交方式POST GET PUT DELETE
sort	int	NULL	NO		1		select,insert,update,references	排序
status	tinyint unsigned	NULL	NO		1		select,insert,update,references	正常,禁用(禁用后不允许访问)
is_show	tinyint	NULL	NO		1		select,insert,update,references	是否显示
create_time	int	NULL	NO		0		select,insert,update,references	
delete_time	int	NULL	NO		0		select,insert,update,references	
addon	varchar(255)	utf8mb4_general_ci	NO				select,insert,update,references	所属插件
source	varchar(255)	utf8mb4_general_ci	NO		system		select,insert,update,references	菜单来源   system 系统文件  create 新建菜单  generator 代码生成器
menu_attr	varchar(50)	utf8mb4_general_ci	NO				select,insert,update,references	菜单属性 common 公共 system 系统

功能用途

主要功能

  • 菜单结构管理: 建立系统的层级菜单结构和导航体系
  • 权限控制: 控制不同角色对菜单的访问权限
  • 菜单层级: 支持多级菜单的父子关系管理
  • 菜单图标: 配置菜单的显示图标和样式
  • 菜单排序: 控制菜单的显示顺序和位置
  • 菜单状态: 管理菜单的启用和禁用状态
  • 路由管理: 配置菜单对应的页面路由和组件
  • 菜单类型: 区分目录、菜单、按钮等不同类型
  • 动态菜单: 支持根据权限动态生成菜单

业务场景

  • 系统初始化: 系统安装时创建基础菜单结构
  • 权限分配: 为不同角色分配菜单访问权限
  • 菜单导航: 用户登录后根据权限显示可访问菜单
  • 功能扩展: 新增功能模块时添加对应菜单
  • 界面定制: 根据业务需要调整菜单结构和样式
  • 权限验证: 访问页面时验证菜单权限
  • 菜单维护: 管理员维护和调整菜单配置
  • 多端适配: 支持PC端和移动端的菜单适配
  • 菜单搜索: 支持菜单的快速搜索和定位

关联关系

主要关联表

  • school_sys_role: 系统角色表 (角色菜单权限关联)
  • school_personnel: 人员表 (用户菜单权限关联)
  • role_menu_permissions: 角色菜单权限表 (权限分配)
  • school_sys_config: 系统配置表 (菜单配置关联)
  • school_addon: 插件表 (插件菜单关联)
  • sys_log: 系统日志表 (菜单操作日志)

关联说明

  • 角色关联: 角色表通过权限表关联菜单,控制角色可访问的菜单
  • 用户关联: 用户通过角色间接关联菜单权限
  • 权限关联: 权限表记录角色与菜单的对应关系
  • 配置关联: 系统配置可能影响菜单的显示和行为
  • 插件关联: 插件安装时可能添加新的菜单项
  • 日志关联: 菜单的增删改操作记录在系统日志中
  • 层级关联: 菜单之间通过parent_id形成父子关系

索引建议

  • 主键索引: menu_id (已存在)
  • 外键索引:
    • parent_id (父菜单查询)
  • 业务索引:
    • menu_type (菜单类型查询)
    • status (状态查询)
    • sort (排序查询)
    • menu_key (菜单标识查询)
  • 复合索引:
    • (parent_id, sort) (同级菜单排序查询)
    • (status, menu_type) (有效菜单类型查询)
    • (parent_id, status) (有效子菜单查询)
  • 时间索引:
    • create_time (创建时间查询)
    • update_time (更新时间查询)

注意事项

  • 菜单标识唯一性: menu_key必须唯一,避免菜单标识冲突
  • 层级关系: parent_id不能形成循环引用,避免无限递归
  • 菜单类型: menu_type需要明确定义(如:目录、菜单、按钮)
  • 路由配置: menu_url需要与前端路由配置保持一致
  • 权限验证: 删除菜单前需要检查是否有角色权限关联
  • 排序逻辑: sort字段用于控制同级菜单的显示顺序
  • 状态控制: 禁用父菜单时需要考虑子菜单的处理
  • 图标格式: menu_icon建议使用统一的图标库标识
  • 菜单深度: 建议菜单层级不超过3-4级,避免过深嵌套
  • 缓存策略: 菜单数据变更频率低,适合缓存优化
  • 权限同步: 菜单变更时需要同步更新相关权限配置
  • 多语言支持: menu_name可能需要支持多语言
  • 移动端适配: 需要考虑移动端菜单的显示和交互
  • 菜单搜索: 支持菜单的模糊搜索和快速定位
  • 数据完整性: 确保菜单数据的完整性和一致性
  • 权限控制: 菜单配置需要严格的权限控制
  • 备份恢复: 菜单配置是系统核心数据,需要定期备份