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
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可能需要支持多语言
- 移动端适配: 需要考虑移动端菜单的显示和交互
- 菜单搜索: 支持菜单的模糊搜索和快速定位
- 数据完整性: 确保菜单数据的完整性和一致性
- 权限控制: 菜单配置需要严格的权限控制
- 备份恢复: 菜单配置是系统核心数据,需要定期备份