假设我们有一个包含用户评论的表格。第一级评论引用了它们所附的文章。更深层次的评论在设计上没有这个引用,但它们有一个对其父评论的引用。
对于这个数据库结构——获取给定文章的所有评论然后以 html 格式呈现它的最有效方法是什么? (假设我们有大约 200 个一级评论和 20 个最深级别的评论)
最佳答案
我通常推荐一种叫做Closure Table的设计。
参见我对 What is the most efficient/elegant way to parse a flat table into a tree? 的回答中的示例
我还设计了这个演示文稿:Models for Hierarchical Data with SQL and PHP .我开发了一个 PHP 应用程序,可在 0.3 秒内从具有 49 万个节点的分层数据集合中渲染一棵树。
我在这里写了关于闭包表的博客:Rendering Trees with Closure Table .
我在我的书 SQL Antipatterns Volume 1: Avoiding the Pitfalls of Database Programming 中写了一章关于分层数据的不同策略.
关于mysql - 从数据库中获取节点树以进行进一步渲染的最佳做法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3258559/