Drupal เก็บเนื้อหาของเนื้อหาของโหนดไว้ที่ไหน


48

ในตารางโหนดคุณจะพบทุกสิ่งยกเว้นเนื้อความจริง ฉันจะหาเนื้อความนี้ได้ที่ไหน ฉันคิดว่ามันถูกเก็บไว้เป็นหยดที่ไหนสักแห่ง


เพื่อทำความเข้าใจว่าที่เก็บทุกฟิลด์ของโหนดใน Drupal 7: ดูdrupal.stackexchange.com/questions/68515/…
กรงเล็บ

คำตอบ:


38

ฉันไม่มีการติดตั้ง drupal ที่นี่ แต่ฉันถามตัวเองคำถามนี้เมื่อสองสามสัปดาห์ที่ผ่านมาและต้องใช้เวลาในการหาคำตอบ

หากฉันจำได้อย่างถูกต้องเนื้อความของโหนดจะถูกเก็บไว้ในตารางที่ใช้ในการรักษา "การแก้ไข" ของโหนด ฉันไม่แน่ใจว่าชื่อของมันคืออะไร แต่ควรเป็นชื่อ "node_revision" หรือ "node_revisions"


4
แก้ไข. มัน . node_revisionsbody

เพียงเพื่อเพิ่ม ... จุดประสงค์ในการแยกส่วนเนื้อหาของโหนดคือการอนุญาตให้ devs สร้างประเภทเนื้อหาที่แตกต่างกันมากเท่าที่ต้องการและมีเพียงหนึ่งตารางที่มี node_id ทั้งหมด การแก้ไขซึ่งรวมถึงเนื้อหาอยู่ในตารางแยกต่างหาก
Randell

ลิงก์ webdevgeeks.com เสีย
reprogrammer

คำตอบนี้ถูกต้องสำหรับ drupal เวอร์ชันใด?
กรงเล็บ

1
@claws คำตอบนี้สำหรับ Drupal 6 สำหรับ Drupal 7 ฟิลด์เนื้อหาจะถูกเก็บไว้ในตาราง field_data_body
Yogesh

53

ใน Drupal 7 ร่างกายถูกย้ายไปที่ตาราง field_data_body


2
ในไซต์ Drupal 7 ของฉันฉันสามารถดูเนื้อหาของเนื้อหาในตาราง "field_data_body" และ "field_revision_body"
reprogrammer

สิ่งนี้เป็นจริงเฉพาะเมื่อคุณมีประเภทเนื้อหาที่มีฟิลด์เนื้อหา (เช่นเดียวกับฟิลด์อื่น ๆ ที่ไม่ใช่ชื่อเรื่อง) ตัวอย่างเช่นการสำรวจความคิดเห็นไม่มี
Scott Evernden

1
ไม่ถูกต้อง ข้อความของร่างกายจะถูกเก็บไว้ในคอลัมน์ของสนามที่เรียกว่าvalue bodyนี้โดยค่าเริ่มต้นจะถูกเก็บไว้ในbody_valueคอลัมน์ของfield_data_bodyตาราง อย่างไรก็ตามไม่มีอะไรทำให้คุณไม่สามารถใช้งานได้พูด MongoDB เพื่อเก็บข้อมูลในbodyฟิลด์ (เกือบจะไม่มีอะไรเลย: โปรไฟล์มาตรฐานสร้างขึ้นใน SQL ดังนั้นคุณควรใช้ขั้นต่ำที่สุดถ้าคุณต้องการใช้ MongoDB เพื่อบันทึกการย้ายที่เจ็บปวดในภายหลัง)

ความสัมพันธ์ระหว่างโหนดและfield_data_bodyคืออะไร หลังไม่มีnidหรือvidคอลัมน์ (อย่างน้อยไม่ได้กับชื่อนั้น)
ยาเม็ดระเบิดได้

มี colume entity_is ใน field_data_body ที่อ้างอิง nid จากตารางโหนด
นวัตกรรม kundan


8

ใน Drupal 6 เนื้อหาของเนื้อหาของโหนดจะถูกบันทึกในตาราง 'node_revisions' ใต้ฟิลด์ 'body'

node_revisions.body

ใน Drupal 7 เนื้อหาของเนื้อหาของโหนดจะถูกบันทึกในตาราง 'field_data_body' ภายใต้ฟิลด์ 'body_value' ในกรณีที่มีการแก้ไขเนื้อหาจะมีการบันทึกข้อมูลในตาราง 'field_revision_body' ภายใต้ฟิลด์ 'body_value'

field_data_body.body_value

field_revision_body.body_value

ใน Drupal 8 เนื้อหาของเนื้อหาของโหนดจะถูกบันทึกในตาราง 'node__body' ภายใต้ฟิลด์ 'body_value' ในกรณีที่มีการแก้ไขเนื้อหาจะมีการบันทึกข้อมูลในตาราง 'node_revision__body' ใต้ช่อง 'body_value'

node__body.body_value

node_revision__body.body_value


5

เนื้อหาประเภทเนื้อหาของคุณจะถูกบันทึกไว้ในfield_data_bodyและfield_revision_bodyตาราง


2

นี่คือ SQL ที่คุณจะใช้ (ไคลเอนต์ MySQL):

SELECT node.nid,node.vid,type,node.title, body 
FROM node join node_revisions ON node.nid = node_revisions.nid
WHERE node.title = 'some title';

ใช่คำตอบคือตาราง "node_revisions" ใน Drupal 6


2

ใน Drupal 7 พบเนื้อหาของโหนดใน field_data_body และ field_revision_body ฟิลด์ใหม่ที่เพิ่มโดยใช้ CCK (ซึ่งถูกเพิ่มไปยังคอร์ใน Drupal 7) พบได้ใน field_config และ field_config_instance ใน Drupal6 ส่วนของโหนดจะถูกเก็บไว้ที่ node_revisions และฟิลด์ที่สร้างขึ้นจะถูกบันทึกไว้ที่ content_node_field และ content_node_field_instance


1

ฉันได้สร้างประเภทเนื้อหาใหม่ไม่กี่ชนิดและสำหรับพวกเขาเนื้อหาหรือคำอธิบายไปที่คอลัมน์ field_description_value ของตารางcontent_type_<type_name>โดยที่type_nameเป็นชื่อของประเภทเนื้อหาใหม่


1

ใน Drupal 7 อยู่ใน field_revision_body .. หากคุณอธิบายตารางนั้นคุณจะเห็นคอลัมน์สำหรับการสรุปเนื้อหาและประเภท longtext

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.