¿Qué significa vid?

12

He diseñado una vista y veo esta consulta en la sección de vista previa:

SELECT node.nid AS nid, 
       node_data_field_crm_history_brokerid.field_crm_history_brokerid_value AS node_data_field_crm_history_brokerid_field_crm_history_brokerid_value, 
       node.language AS node_language, 
       node.type AS node_type, 
       node.vid AS node_vid, 
       node_data_field_crm_history_brokerid.field_crm_history_caseid_value AS node_data_field_crm_history_brokerid_field_crm_history_caseid_value, 
       node_data_field_crm_history_brokerid.field_crm_history_dateadded_value AS node_data_field_crm_history_brokerid_field_crm_history_dateadded_value, 
       node_data_field_crm_history_brokerid.field_crm_history_entrydesc_value AS node_data_field_crm_history_brokerid_field_crm_history_entrydesc_value 
FROM node node 
LEFT JOIN content_type_crm_history node_data_field_crm_history_brokerid ON node.vid = node_data_field_crm_history_brokerid.vid 
WHERE node.type in ('crm_history')

¿Qué vidsignifica aquí?

En realidad, necesito esto porque cuando intento insertar una regla simple para insertar una fila en crm_history usando esta consulta:

$result = db_query("INSERT INTO {content_type_crm_history} (vid, nid, field_crm_history_caseid_value, field_crm_history_brokerid_value, field_crm_history_dateadded_value, field_crm_history_entrydesc_value) VALUES (" . $node->nid . ", " . $node->vid . ", " . $caseid . ", " . $brokerid . ", " . $dateadded . ", '" . t($entrydesc) . "')");

Llena la tabla de la base de datos pero no se muestra en la vista. Solo muestra la vista cuando agrego a través de la página de creación de contenido.

doelleri
fuente

Respuestas:

24

Desafortunadamente, vid puede significar múltiples cosas. Eso no es ideal, pero no lo he visto causar problemas (aparte de una leve confusión de vez en cuando).

En el contexto de los nodos, significa 'id de versión'. Para cada nodo en la tabla de nodos, Drupal puede guardar múltiples versiones en la tabla node_revisions. El id de la versión es el identificador único en la tabla node_revisions. (Este es el video que ves en tu consulta).

En el contexto de la taxonomía, vid significa 'id. De vocabulario'. Un vocabulario es una colección de términos relacionados. Cada vocabulario tiene una identificación única.

En el contexto del módulo Vistas, vid significa 'id de vista'.

En una nota diferente, no debería agregar nodos a la base de datos con consultas personalizadas. El mejor método es crear un objeto de nodo y dejar que drupal lo escriba en la base de datos usando node_save().

marcvangend
fuente
5

Desde la página de referencia de objetos del nodo Drupal , node-> vid es el id de revisión de la versión actual del nodo.

El contenido del nodo no se almacena directamente en la tabla de nodos sino en la tabla node_revisions. Hay una buena explicación de las estructuras de la tabla en esta página .

alxp
fuente
2

vides el id de revisión. En Drupal, cada nodo puede tener múltiples revisiones. Si no está utilizando revisiones, la nid(ID de nodo) será igual a vid.

Greg
fuente
Pero, cuando no use revisiones, ¡no cuente con nid siempre igual a vid!
Greg
¿
@rakeshakurathi: mira el código fuente de Node Clone. Una de las pocas cosas que hace es insertar nuevos nodos, por lo que debería ser fácil localizar el código relevante en su fuente. drupal.org/project/node_clone
Greg