学说嵌套集与邻接表

发布于 2024-10-21 07:24:42 字数 283 浏览 9 评论 0原文

我需要按级别显示类别树(每个级别上的所有树元素)。

Root
Cat1 (parent_id) Cat2 (parent_id) ...
Subcat1 (parent_id) Subcat2 (parent_id) Subcat3 (parent_id) ...

我尝试用 Nested Set 结构来实现它,但遇到了一个问题:没有简单的方法来获取父节点的 id(无需单独查询数据库)。我应该使用邻接列表吗?

目标是使显示尽可能快,最好只需对数据库进行一次查询即可。

I need to display a tree of categories by levels (all tree elements on each level).

Root
Cat1 (parent_id) Cat2 (parent_id) ...
Subcat1 (parent_id) Subcat2 (parent_id) Subcat3 (parent_id) ...

I tried to implement it with Nested Set structure, but I ran into a problem: no easy way to get the parent's node id (without a separate query to the database). Should I use Adjacency list instead?

The goal is to make the display as fast as possible, ideally with one query to the database.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

黑色毁心梦 2024-10-28 07:24:42

阅读这篇关于嵌套集与邻接列表的文章。您将看到 Nested Set 使查询 faaaaar 更容易编写。
另请阅读有关 嵌套集合层次结构水化方法,您将了解如何通过单个查询以分层形式获取多个学说对象。

Read this article about Nested Set vs Adjacency List. You'll see that Nested Set makes the queries faaaaar easier to write.
Also read this § about the nested set hierarchy hydration method, and you'll figure out how to get several doctrine objects in a hierarchical form with a single query.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文