You are here

Drupal专业开发指南 第14章 存储分类

g089h515r806 的头像
Submitted by g089h515r806 on 星期五, 2009-08-21 15:44

老葛的Drupal培训班 Think in Drupal

如果你不想局限于内置的分类能力,那么这将驱使着你去理解分类在数据库中是如何存储的。在一个典型的非Drupal数据库中,你可能通过向数据库表中简单的添加一列来创建一个单层分类。你已经看到了,Drupal使用普通的数据库表来添加分类。图14-7给出了表结构。
 
14-7 Drupal的分类数据库表:主键使用了粗体;索引字段使用了斜体。term_node表中的*vid,引用的是node_revisions表的版本ID,而不是词汇表ID。
 
     下列表组成了Drupal的分类存储系统:
 
• vocabulary:这个表存储了词汇表的相关信息,通过Drupal的分类界面可以对其进行修改。
 
• vocabulary_node_types: 这个表用来追踪词汇表与节点类型的对应关系。该类型是Drupal内部的节点类型名字(例如,blog),它对应于node表的type列。
 
• term_data: 这个表包含了术语的真实名字,它所在的词汇表,它的可选的描述,以及它的重量,后者用来决定它在术语的下拉选择框中的相对位置(例如,在节点提交表单上)。
 
• term_synonym: 这个表包含了给定术语ID的同义词。
 
• term_relation:当定义一个术语时,这个表用来追踪相关术语的术语ID。
 
• term_hierarchy:这个表包含了术语的术语ID和它父亲的术语ID。如果一个术语位于根部(也就是说,它没有父亲),那么它父亲的ID为0.
 
• term_node: 这个表是用来匹配术语与节点的,节点以该术语为标签。
 

Drupal版本: