You are here

从模式向数据库的字段类型映射

在模式定义中声明的字段类型,将会映射成数据库中的本地字段类型。例如,一个size为tiny的整数字段将映射为MySQL中的TINYINT字段,或者PostgreSQL中的smallint字段。实际的映射可查看数据库驱动文件中的db_type_map()函数,比如includes/database.pgsql.php(参看表5-2, 本章后面讲到)。

 
文本型
    文本型字段是用来包含文本的。
 
Varchar
    Varchar,也就是变长字符字段;对于长度小于256字符的文本,通常使用这一字段类型。最大的字符长度,可以使用length键定义。MySQL中 varchar 字段的长度为0–255字符(MySQL 5.0.2 及更早版本)和0–65,535字符(MySQL 5.0.3及以后版本);而PostgreSQL中varchar字段的长度则可以更大一些。
 
$field['fieldname'] = array(
    'type' => 'varchar', // Required.
    'length' => 255, // Required.
    'not null' => TRUE, // Defaults to FALSE.
    'default' => 'chocolate', // See below.
    'description' => t('Always state the purpose of your field.'),
);
 
    如果default键未被设置,并且not null键被设置为了FALSE,那么默认值将被设置为NULL。
 
Char
    Char字段是定长字符字段,该字段的字符长度,可以使用length键定义。MySQL中char字段的长度为0–255字符。
$field['fieldname'] = array(
    'type' => 'char', // Required.
    'length' => 64, // Required.
    'not null' => TRUE, // Defaults to FALSE.
    'default' => 'strawberry', // See below.
    'description' => t('Always state the purpose of your field.'),
);
 
    如果default键未被设置,并且not null键被设置为了FALSE,那么默认值将被设置为NULL。
 
Text
Text字段用于大块的文本。例如,node_revisions表(存储节点正文的)中的body字段就是这种类型。Text字段可以不使用默认值。
 
$field['fieldname'] = array(
    'type' => 'text', // Required.
    'size' => 'small', // tiny | small | normal | medium | big
    'not null' => TRUE, // Defaults to FALSE.
    'description' => t('Always state the purpose of your field.'),
);
 老葛的Drupal培训班 Think in Drupal

Drupal版本: