我想在MySQL中存储一个嵌套的关联数组。我需要这个在我的网站上的可嵌套导航菜单。嵌套水平应该没有限制。
我研究了nested set model和adjacency list,但我不确定哪些用于我的需求。
理想情况下,我将能够以一种方式查询我的表,我可以在PHP中重建我的关联数组,然后使用它来构建我的导航菜单。 记录可能会被添加/更改/重新排序,但这种情况只会偶尔发生。
我正在寻找MySQL(InnoDB)的示例表结构,查询以获取和重新排序记录,以及更新,删除和添加新记录。我在PHP中使用PDO,因此任何如何将记录集转换为关联数组的示例代码也会有所帮助。
答案 0 :(得分:0)
尝试以下设计:
现在,只需根据需要存储ID。
示例:导航菜单可能是
A - > B - > ç
只需为菜单中的每个条目指定一个ID,并使用唯一的ID存储它。 然后在表格中输入BEFORE和AFTER值作为ID。
所以,对于B我们有
Entry for B:
BEFORE = ID(C)
AFTER = ID(A)
NAME = 'B'
可以轻松扩展多个嵌套菜单。
答案 1 :(得分:0)
我建议采用以下设计来实施解决方案。
表:导航
Columns :
ID (INT NOT NULL IDENTITY),
Description (VARCHAR),
ParentID (INT NULL) - Refer its own table ID column,
AdditionalColulmns..