2

我需要有关表结构的建议。

我需要动态创建菜单。

将有3个以上的菜单。

一些菜单将具有多级结构。

构建菜单表的最佳方式是什么?

  1. 所有菜单都在一张桌子上
  2. 每张桌子应该有一张桌子
  3. 任何其他??

请给我你的经验或动态生成菜单的常见做法。

4

4 回答 4

12

假设您的菜单树不是很大,所谓的邻接列表将是最简单的选项

id   
parent_id
title
other fields

对于顶级菜单 parent_id = 0

有关进一步讨论和其他选项,请参阅在 MySQL 中管理分层数据

于 2009-12-07T07:45:51.847 回答
2

你可以使用这样的结构:

表名:菜单 id - 主键 menu_id - 对父菜单项的引用 title - 菜单的标题(您需要的任何其他数据)

这样你就可以有无限的水平......当然这不是唯一的方法......

于 2009-12-07T07:22:40.977 回答
2

对于大多数结构来说,使用 parent_id 应该足够了,但是如果你在性能上遇到困难(关于深度递归),你还应该研究Modified Preorder Tree Traversal

于 2009-12-07T10:07:50.977 回答
2

http://www.codeproject.com/Tips/354696/Dynamically-populating-menu-items-from-the-databas

这将很有帮助,从 ASP.NET 中的数据库中动态填充菜单项

于 2013-04-18T12:17:43.530 回答