我必须根据数据库项目制作一个垂直的3级菜单,但不幸的是没有用" parent_id" ...
组织db看起来像:
menu | sub menu | subsub menu | subsubsub menu
________________________________________________________
univers1 | galaxy1 | planet1 | city1
univers1 | galaxy1 | planet1 | city2
univers1 | galaxy2 | planet1 | city1
univers1 | galaxy2 | planet2 | city1
univers1 | galaxy2 | planet2 | city2
univers2 | galaxy1 | planet1 | city1
univers2 | galaxy2 | |
univers2 | galaxy3 | planet1 |
我需要获得:
我知道这很糟糕,但我别无选择。
我应该承认,如果没有传统的parent_id专栏,我很困惑。
mysql是否有一个特殊的技巧来保持请求简单? 我的意思是不使用间隔树。
答案 0 :(得分:0)
您是否可以使用链接表?它不需要将parent_id作为参数发送。最重要的是,它将创建一个清晰简单的4个表结构,这是正确的形式,不会重复数据。
例如:
TABLE UNIVERSE
ID UniverseName UniverseStatus ....
TABLE GALAXY
ID GalaxyName UniverseId GalaxyStatus ...
等。 请注意,ID是自动生成的,并在创建时增加。 如果不是这种情况,你可以使用像
这样的东西SELECT city FROM mainTable WHERE {conditions}
您可以捆绑条件