我们开发会遇到类似于获取菜单这种情况,架构大体类似如下:
- 人事管理
- 员工资历
- 员工奖惩
- 统计管理
- 统计列表
- 系统管理
- 我的设置
- 权限管理
- 角色列表
我这里用的是双层结构,我们搜索的时候用的是递归查询,所以理论上可以无限级添加(不考虑数据库的感受的话)。
数据表如下:
-- Table structure for tbl_auth_menu
|
|
-- Records of tbl_auth_menu
|
|
我这里第一级目录的 父菜单 id (pid)使用的是 -1, 因为 id 默认是从 0开始的,使用0的话,这个菜单有可能不是第一级目录,而是 pid = 0 的二级目录了
- 父菜单 id = 0
- 子菜单 pid = 0 (pid=0,它就是二级目录了)
代码
文件 menu.go (使用 beego orm)
|
|
在数据库层,注册模型
|
|
递归查询
|
|
api方法
|
|