Что означает vid


Я разработал представление и вижу этот запрос в разделе предварительного просмотра:

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')

Что здесь означает vid?

На самом деле мне это нужно, потому что, когда я пытаюсь вставить простое правило для вставки строки в crm_history, используя этот запрос:

$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) . "')");

Он заполняет таблицу базы данных, но не отображается в представлении. Он показывает только представление, когда я добавляю его через страницу создания контента.

Author: doelleri, 2010-01-25

3 answers

К сожалению, vid может означать несколько вещей. Это не идеально, но я не видел, чтобы это вызывало проблемы (кроме легкой путаницы время от времени).

В контексте узлов это означает "идентификатор версии". Для каждого узла в таблице узлов Drupal может сохранять несколько версий в таблице node_revisions. Идентификатор версии - это уникальный идентификатор в таблице node_revisions. (Это видео, которое вы видите в своем запросе.)

В контексте таксономии vid означает "идентификатор словаря".A словарь - это набор связанных терминов. Каждый словарь имеет уникальный идентификатор.

В контексте модуля представлений vid означает "идентификатор представления".

С другой стороны, вы не должны добавлять узлы в базу данных с помощью пользовательских запросов. Лучший способ - создать объект узла и позволить drupal записать его в базу данных с помощью node_save().

 24
Author: marcvangend, 2012-03-16 13:31:41

На странице ссылки на объект узла Drupal узел->vid - идентификатор редакции текущей версии узла.

Содержимое узла хранится не непосредственно в таблице узлов, а в таблице node_revisions. На этой странице есть хорошее объяснение структуры таблиц .

 5
Author: alxp, 2010-01-25 19:39:46

vid является идентификатором редакции. В Drupal каждый узел может иметь несколько ревизий. Если вы не используете ревизии, то nid (идентификатор узла) будет равен vid.

 2
Author: Greg, 2010-01-25 19:41:41