用“无限”子代表示SQL中的多层次菜单的最佳方法?

时间:2019-05-18 12:46:22

标签: java mysql sql database

我正在尝试创建一个多层菜单,对其分支的距离没有限制-例如食物->水果->圆形->颜色等...

我不确定如何用SQL表示关系,也不确定如何查询数据。

我考虑过做

  

MainMenu:   ID:ChildID:名称:URL:PermissionID:等。

     

子菜单:   PID:儿童ID:名称:URL:许可ID:等。

我认为,如果子菜单中还有其他子菜单,则其子菜单将成为SubMenu表中的另一个项目,那应该可以吗? PermissionID用于确定UserGroup是否可以访问Menu项。

我不确定SQL查询,因为我对它有点绿色。我知道最后我要向SQL提供UserGroup的PermissionID,以从表中获取所有菜单和子菜单。

1 个答案:

答案 0 :(得分:0)

在RDBMS中存储分层数据不是一个好主意。您既可以使用诸如Elastic https://www.elastic.co/之类的基于文档的框架,以JSON文档格式存储数据,也可以在RDBMS的varchar列中使用分层JSON。