web-dev-qa-db-ja.com

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

データベーステーブルにはデータが入力されますが、ビューには表示されません。コンテンツ作成ページで追加したときのビューのみが表示されます。

12
rakeshakurathi

残念ながら、vidには複数の意味があります。これは理想的ではありませんが、問題が発生することはありません(時々穏やかな混乱を除く)。

ノードのコンテキストでは、「バージョンID」を意味します。ノードテーブル内のすべてのノードについて、Drupalは複数のバージョンをnode_revisionsテーブルに保存できます。バージョンIDはnode_revisionsテーブル内の一意の識別子です(これはクエリに表示されるvidです)。 )

分類の文脈では、vidは「語彙ID」を意味します。語彙は、関連する用語の集まりです。すべての語彙には固有のIDがあります。

Viewsモジュールのコンテキストでは、vidは「ビューID」を意味します。

別の注記では、カスタムクエリを使用してデータベースにノードを追加しないでください。より良い方法は、ノードオブジェクトを作成し、drupal node_save() を使用してデータベースに書き込むことです。

24
marcvangend

Drupal ノードオブジェクト参照 ページから)、node-> vidは、ノードの現在のバージョンのリビジョンIDです。

ノードのコンテンツは、ノードテーブルに直接格納されるのではなく、node_revisionsテーブルに格納されます。 このページ にテーブル構造の説明があります。

5
alxp

vidはリビジョンIDです。 Drupalでは、すべてのノードが複数のリビジョンを持つことができます。リビジョンを使用していない場合、nid(ノードID)はvidと等しくなります。

2
Greg