您根据什么经验法则决定使用 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/