按路径查询 MPTT 样式表的最有效方法是什么?

发布于 2024-10-21 06:09:59 字数 242 浏览 1 评论 0原文

我有一个 MySQL 表,使用 MPTT 方法存储分层数据。该表还有一列,我在其中存储每行的短字符串标识符(slug)。

当给定由这些段组成的路径时,我希望能够查询表以找到正确的行。即给定路径 foo/bar ,我想以最有效的方式找到它代表的行。

我可以在单个 SQL 查询中完成此操作吗?如果不是,将多个查询串在一起以获得正确结果的最有效方法是什么?我在我的应用程序中使用 PHP,如果不能纯粹通过 SQL 查询来完成,这可能是相关的。

I have a MySQL table that stores hierarchical data using the MPTT method. The table also has a column in which I store a short string identifier (slug) for each row.

I'd like to be able to query the table to find the correct row when given a path comprised of these slugs. I.e. given the path foo/bar I'd like to find the row it represents in the most efficient way possible.

Can I do this in a single SQL query? If not what would be the most efficient way to string together a number of queries to get the correct result? I'm using PHP in my app, which may be relevant if this can't be done purely with SQL queries.

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

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

发布评论

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

评论(1

随遇而安 2024-10-28 06:09:59

如果您想要快速读取并且不介意较慢写入,请将路径缓存在另一列中。您可以通过仅使用其父节点的缓存路径更新已更改的节点(及其子节点)来更有效地重新生成路径缓存。

If you want speedy reads and don't mind slower writes, cache the paths in another column. You can make regenerating the path caches more efficient by only updating the changed node (and its children) using its parent's cached path.

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