多级菜单Mysql数据库表设计与创建

1.还是以Vue实现学院官网为例

文章地址:http://t.csdnimg.cn/jrJhE
Vue 实现学院官网“菜单”当时是使用静态数据,也就是在页面上写死了的。
今天我们需要将“菜单”数据在数据库中进行维护,我们使用的是Mysql数据库

2.数据库的设计

我们的菜单分为一级菜单和二级菜单,一个一级菜单对应多个二级菜单,一对多的关系,这个时候,很多学者认为需要两张表来维护菜单之间的关系,其实不然,一张表就可以。

我们从菜单静态数据可以看到,无论是一级菜单还是二级菜单,核心字段都是一样的。
故而,可以使用一张表保存菜单数据,那么一张表如何维护一级菜单和二级菜单的关系呢,
使用自关联。添加一个父id字段(fid)。

设计后的表格数据应如下
fid为0的为一级菜单,二级菜单的fid 对应一级菜单的id(自关联)
在这里插入图片描述

3.数据库实现

-- 创建数据库并指定字符集
create database wenyuan character set =utf8;

-- 选择数据库
use wenyuan;

-- 创建菜单表
create table caidan(
    id int primary key auto_increment,
    name varchar(32) not null,
    url varchar(100),
    fid int);
    
-- 向表中添加一级菜单数据
insert into caidan values(default,"首页","#",0);
insert into caidan values(default,"学校概况","#",0);
insert into caidan values(default,"机构设置","#",0);
insert into caidan values(default,"招生就业","#",0);
insert into caidan values(default,"专业建设","#",0);
insert into caidan values(default,"校园文化","#",0);
insert into caidan values(default,"信息公开","#",0);
insert into caidan values(default,"数字校园","#",0);

-- 向表中添加对应的二级菜单数据
insert into caidan values(default,"学校简介","#",2);
insert into caidan values(default,"现任领导","#",2);
insert into caidan values(default,"历史沿革","#",2);
insert into caidan values(default,"党群机构","#",3);
insert into caidan values(default,"行政机构","#",3);
insert into caidan values(default,"招生网","#",4);
insert into caidan values(default,"就业网","#",4);
......

4.查询数据库

4.1 查询所有的菜单

 select * from caidan;

在这里插入图片描述

4.2 查询所有的一级菜单

select * from caidan where fid = 0;

在这里插入图片描述

4.3查询“学校概况”下的二级菜单

select * from caidan where fid = (select id from caidan where name = "学校概况");

在这里插入图片描述

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
打开dns.37it.cn免费申请二级域名解析方可使用 否则会出现00002993错误 用替换工具ultrareplace,文本编辑工具:Notepad++ 下面是需要替换的地方 ceshi.vvei.cn 超级人脉管家 http://mp.weixin.qq.com/s?__biz=MzA4MTI1OTI1OA==&mid=212268202&idx=1&sn=581c81665c013e1ee5c01db440df2593#rd 这个到时候自己撰写一份新手指南替换 掉 http://123.com/index.php?g=Admin&m=Login&a=index 后台地址 admin admin888 微信管理>>自定义回复 修改 http://ceshi.vvei.cn/ 替换为 你的网站 1、数据库连接地址:Public\Conf\config.php 2、微信菜单修改:Public\Conf\button_config.php,然后“微信管理”-“菜单管理”-“重新生成菜单”。 另下面三行代码请修改: $link_config (还没有关注的,引导关注,点击“立即关注”进入微信文章) $config_good_pic (购买时,页面上面的产品图) $headimgurl (没有购买前的头部左上角LOGO) 3、公众号里面的支付授权目录:直接域名就可以 支付回调URL:直接域名就可以 告警通知URL:先空着 4、更“换推广二维码”图片,图片在根目录保持格式、名字不变。记得在服务器根目录/imgpublic里删除其它多余的图片,只留benbendou.jpg即可。 5、页面的CSS在这里改:Application\Tpl\App\default\Public\Static\css 6、如果头像出不来,可以把根目录的imgpublic文件夹权限设为777 7、微信支付前显示的图片: Application\Tpl\App\default\Public\Static\images\productsinfo.jpg 对应更改的文件:Application\Tpl\App\default\Index\pay.html 8、更改下单时的“备注”内容:Application\Tpl\App\default\Index\index.html 9、关于修改微信关注后回复的内容目录地址: Application\Lib\Action\Admin\WechatAction.class.php 可修改第249,263,267行,可修改中文汉字,不要修改参数代码。 =============================================================== 后台登录:http://您的域名/index.php?g=Admin 初始帐号:admin 密 码:admin888
设计图书多级目录的数据库结构,可以考虑以下几个: 1. book:存储书籍的基本信息,如书名、作者、出版社等。 2. category:存储所有的分类信息,包括主分类和子分类,例如“哲学”、“古代哲学”、“中国哲学”等。 3. book_category:建立书籍和分类之间的关联关系,一个书籍可以对应多个分类,一个分类也可以对应多个书籍。 4. chapter:存储书籍的章节信息,包括章节标题、页码等。 5. category_chapter:建立分类和章节之间的关联关系,一个分类可以对应多个章节,一个章节也可以对应多个分类。 6. chapter_parent:建立章节和父级章节之间的关联关系,一个章节可以有多个父级章节,一个父级章节也可以对应多个子章节。 其中,book_category和category_chapter都是多对多的关系,需要额外建立一个中间来存储它们之间的关联关系。chapter_parent则是自关联,用来存储章节和父级章节之间的关系。 具体的结构可以参考下面的SQL语句: ``` CREATE TABLE book ( id INT PRIMARY KEY, title VARCHAR(255), author VARCHAR(255), publisher VARCHAR(255) ); CREATE TABLE category ( id INT PRIMARY KEY, name VARCHAR(255), parent_id INT, FOREIGN KEY (parent_id) REFERENCES category(id) ); CREATE TABLE book_category ( book_id INT, category_id INT, PRIMARY KEY (book_id, category_id), FOREIGN KEY (book_id) REFERENCES book(id), FOREIGN KEY (category_id) REFERENCES category(id) ); CREATE TABLE chapter ( id INT PRIMARY KEY, title VARCHAR(255), page_number INT ); CREATE TABLE category_chapter ( category_id INT, chapter_id INT, PRIMARY KEY (category_id, chapter_id), FOREIGN KEY (category_id) REFERENCES category(id), FOREIGN KEY (chapter_id) REFERENCES chapter(id) ); CREATE TABLE chapter_parent ( child_id INT, parent_id INT, PRIMARY KEY (child_id, parent_id), FOREIGN KEY (child_id) REFERENCES chapter(id), FOREIGN KEY (parent_id) REFERENCES chapter(id) ); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值