drupal - node_load 还是直接查询?

标签 drupal drupal-6

您根据什么经验法则决定使用 node_load() 还是直接编写 db_query()

在我现在看到的情况下,我需要获取一些节点数据解析两个节点引用字段上的数据。所以这将是对 node_load() 的 3 次调用。在这里的某个时候,直接使用 Joins 构造查询会更有效吗?

这是用于不会分发或在其他任何地方使用的自包含模块,所以我认为我不需要担心破坏节点修改 Hook (或者我需要担心吗?)。

编辑:
仔细想想我的问题,node_load() 仅在您要抓取一个节点时才真正适用(然后可能像我的示例一样进一步深入到节点引用)。但是,一旦您需要根据某些条件返回多个节点,您就不得不使用 db_query 对吧? Drupal 是否有任何抽象的 API 来编写这样的查询?

最佳答案

不是一个完整的答案(我自己也不确定),只是一些提示。

  • node_load() 使用静态缓存(在 Drupal 7 中,您甚至可以使用 entity_cache 模块使其成为永久缓存)。如果您正在加载的节点在同一页面上被第二次使用,则该调用将是免费的。

  • 查询 CCK 表很棘手。架构结构可以根据配置完全更改,例如在使用单个或多个值时。

关于drupal - node_load 还是直接查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4989250/

相关文章:

php - 覆盖每个节点类型的 html.tpl.php 不起作用

php - 如何为 Drupal 8 启用 PHP OPcode 缓存?

jquery - 根据 Drupal 7 中的视口(viewport)高度动态更改 DIV 高度

drupal - 从 6.12 升级到 6.15 后无法在 Drupal 上启用 Clean URL

Java 与 Drupal-6/PHP

sql - 在 Git 中存储 Drupal SQL

德鲁帕尔 6 : Implement Wysiwyg on Custom Module Form

drupal - 我可以使用 drupal View 为一系列页面创建 "table of content"页面吗?

"untrusted"管理员的 Drupal 高级 ACL

Drupal 6 : Why use ! t() 中的标记?