就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果你觉得这个问题可以改进并可能重新打开,visit the help center 寻求指导。
9年前关闭。
有 "put a FK to your parent" method ,即每个记录都指向它的父级。
这对于读取操作来说很难,但很容易维护。
然后还有一个“目录结构键”方法:
0001.0000.0000.0000 main branch 1
0001.0001.0000.0000 child of main branch one
etc
这是 super 容易阅读,但很难维护。
其他方式及其优缺点是什么?
最佳答案
一如既往:没有最佳解决方案。每个解决方案都会使不同的事情变得更容易或更难。适合您的解决方案取决于您最常执行的操作。
带有父 ID 的天真方法:
优点:
缺点:
修改前序树遍历(保存起点和终点):
优点:
缺点:
每个节点保存一条路径:
优点:
缺点:
闭合表
优点:
缺点:
我更喜欢最后两个中的一个,具体取决于数据更改的频率。
另见:http://media.pragprog.com/titles/bksqla/trees.pdf
关于mysql - 在关系数据库中存储树结构的已知方法有哪些?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3362669/