web/drupal/modules/taxonomy/taxonomy.install
branchdrupal
changeset 74 0ff3ba646492
equal deleted inserted replaced
73:fcf75e232c5b 74:0ff3ba646492
       
     1 <?php
       
     2 // $Id: taxonomy.install,v 1.7.2.1 2009/01/06 15:46:38 goba Exp $
       
     3 
       
     4 /**
       
     5  * Implementation of hook_schema().
       
     6  */
       
     7 function taxonomy_schema() {
       
     8   $schema['term_data'] = array(
       
     9     'description' => 'Stores term information.',
       
    10     'fields' => array(
       
    11       'tid' => array(
       
    12         'type' => 'serial',
       
    13         'unsigned' => TRUE,
       
    14         'not null' => TRUE,
       
    15         'description' => 'Primary Key: Unique term ID.',
       
    16       ),
       
    17       'vid' => array(
       
    18         'type' => 'int',
       
    19         'unsigned' => TRUE,
       
    20         'not null' => TRUE,
       
    21         'default' => 0,
       
    22         'description' => 'The {vocabulary}.vid of the vocabulary to which the term is assigned.',
       
    23       ),
       
    24       'name' => array(
       
    25         'type' => 'varchar',
       
    26         'length' => 255,
       
    27         'not null' => TRUE,
       
    28         'default' => '',
       
    29         'description' => 'The term name.',
       
    30       ),
       
    31       'description' => array(
       
    32         'type' => 'text',
       
    33         'not null' => FALSE,
       
    34         'size' => 'big',
       
    35         'description' => 'A description of the term.',
       
    36       ),
       
    37       'weight' => array(
       
    38         'type' => 'int',
       
    39         'not null' => TRUE,
       
    40         'default' => 0,
       
    41         'size' => 'tiny',
       
    42         'description' => 'The weight of this term in relation to other terms.',
       
    43       ),
       
    44     ),
       
    45     'primary key' => array('tid'),
       
    46     'indexes' => array(
       
    47       'taxonomy_tree' => array('vid', 'weight', 'name'),
       
    48       'vid_name' => array('vid', 'name'),
       
    49     ),
       
    50   );
       
    51 
       
    52   $schema['term_hierarchy'] = array(
       
    53     'description' => 'Stores the hierarchical relationship between terms.',
       
    54     'fields' => array(
       
    55       'tid' => array(
       
    56         'type' => 'int',
       
    57         'unsigned' => TRUE,
       
    58         'not null' => TRUE,
       
    59         'default' => 0,
       
    60         'description' => 'Primary Key: The {term_data}.tid of the term.',
       
    61       ),
       
    62       'parent' => array(
       
    63         'type' => 'int',
       
    64         'unsigned' => TRUE,
       
    65         'not null' => TRUE,
       
    66         'default' => 0,
       
    67         'description' => "Primary Key: The {term_data}.tid of the term's parent. 0 indicates no parent.",
       
    68       ),
       
    69     ),
       
    70     'indexes' => array(
       
    71       'parent' => array('parent'),
       
    72     ),
       
    73     'primary key' => array('tid', 'parent'),
       
    74   );
       
    75 
       
    76   $schema['term_node'] = array(
       
    77     'description' => 'Stores the relationship of terms to nodes.',
       
    78     'fields' => array(
       
    79       'nid' => array(
       
    80         'type' => 'int',
       
    81         'unsigned' => TRUE,
       
    82         'not null' => TRUE,
       
    83         'default' => 0,
       
    84         'description' => 'Primary Key: The {node}.nid of the node.',
       
    85       ),
       
    86       'vid' => array(
       
    87         'type' => 'int',
       
    88         'unsigned' => TRUE,
       
    89         'not null' => TRUE,
       
    90         'default' => 0,
       
    91         'description' => 'Primary Key: The {node}.vid of the node.',
       
    92       ),
       
    93       'tid' => array(
       
    94         'type' => 'int',
       
    95         'unsigned' => TRUE,
       
    96         'not null' => TRUE,
       
    97         'default' => 0,
       
    98         'description' => 'Primary Key: The {term_data}.tid of a term assigned to the node.',
       
    99       ),
       
   100     ),
       
   101     'indexes' => array(
       
   102       'vid' => array('vid'),
       
   103       'nid' => array('nid'),
       
   104     ),
       
   105     'primary key' => array('tid', 'vid'),
       
   106   );
       
   107 
       
   108   $schema['term_relation'] = array(
       
   109     'description' => 'Stores non-hierarchical relationships between terms.',
       
   110     'fields' => array(
       
   111       'trid' => array(
       
   112         'type' => 'serial',
       
   113         'not null' => TRUE,
       
   114         'description' => 'Primary Key: Unique term relation ID.',
       
   115       ),
       
   116       'tid1' => array(
       
   117         'type' => 'int',
       
   118         'unsigned' => TRUE,
       
   119         'not null' => TRUE,
       
   120         'default' => 0,
       
   121         'description' => 'The {term_data}.tid of the first term in a relationship.',
       
   122       ),
       
   123       'tid2' => array(
       
   124         'type' => 'int',
       
   125         'unsigned' => TRUE,
       
   126         'not null' => TRUE,
       
   127         'default' => 0,
       
   128         'description' => 'The {term_data}.tid of the second term in a relationship.',
       
   129       ),
       
   130     ),
       
   131     'unique keys' => array(
       
   132       'tid1_tid2' => array('tid1', 'tid2'),
       
   133     ),
       
   134     'indexes' => array(
       
   135       'tid2' => array('tid2'),
       
   136     ),
       
   137     'primary key' => array('trid'),
       
   138   );
       
   139 
       
   140   $schema['term_synonym'] = array(
       
   141     'description' => 'Stores term synonyms.',
       
   142     'fields' => array(
       
   143       'tsid' => array(
       
   144         'type' => 'serial',
       
   145         'not null' => TRUE,
       
   146         'description' => 'Primary Key: Unique term synonym ID.',
       
   147       ),
       
   148       'tid' => array(
       
   149         'type' => 'int',
       
   150         'unsigned' => TRUE,
       
   151         'not null' => TRUE,
       
   152         'default' => 0,
       
   153         'description' => 'The {term_data}.tid of the term.',
       
   154       ),
       
   155       'name' => array(
       
   156         'type' => 'varchar',
       
   157         'length' => 255,
       
   158         'not null' => TRUE,
       
   159         'default' => '',
       
   160         'description' => 'The name of the synonym.',
       
   161       ),
       
   162     ),
       
   163     'indexes' => array(
       
   164       'tid' => array('tid'),
       
   165       'name_tid' => array('name', 'tid'),
       
   166     ),
       
   167     'primary key' => array('tsid'),
       
   168   );
       
   169 
       
   170   $schema['vocabulary'] = array(
       
   171     'description' => 'Stores vocabulary information.',
       
   172     'fields' => array(
       
   173       'vid' => array(
       
   174         'type' => 'serial',
       
   175         'unsigned' => TRUE,
       
   176         'not null' => TRUE,
       
   177         'description' => 'Primary Key: Unique vocabulary ID.',
       
   178       ),
       
   179       'name' => array(
       
   180         'type' => 'varchar',
       
   181         'length' => 255,
       
   182         'not null' => TRUE,
       
   183         'default' => '',
       
   184         'description' => 'Name of the vocabulary.',
       
   185       ),
       
   186       'description' => array(
       
   187         'type' => 'text',
       
   188         'not null' => FALSE,
       
   189         'size' => 'big',
       
   190         'description' => 'Description of the vocabulary.',
       
   191       ),
       
   192       'help' => array(
       
   193         'type' => 'varchar',
       
   194         'length' => 255,
       
   195         'not null' => TRUE,
       
   196         'default' => '',
       
   197         'description' => 'Help text to display for the vocabulary.',
       
   198       ),
       
   199       'relations' => array(
       
   200         'type' => 'int',
       
   201         'unsigned' => TRUE,
       
   202         'not null' => TRUE,
       
   203         'default' => 0,
       
   204         'size' => 'tiny',
       
   205         'description' => 'Whether or not related terms are enabled within the vocabulary. (0 = disabled, 1 = enabled)',
       
   206       ),
       
   207       'hierarchy' => array(
       
   208         'type' => 'int',
       
   209         'unsigned' => TRUE,
       
   210         'not null' => TRUE,
       
   211         'default' => 0,
       
   212         'size' => 'tiny',
       
   213         'description' => 'The type of hierarchy allowed within the vocabulary. (0 = disabled, 1 = single, 2 = multiple)',
       
   214       ),
       
   215       'multiple' => array(
       
   216         'type' => 'int',
       
   217         'unsigned' => TRUE,
       
   218         'not null' => TRUE,
       
   219         'default' => 0,
       
   220         'size' => 'tiny',
       
   221         'description' => 'Whether or not multiple terms from this vocabulary may be assigned to a node. (0 = disabled, 1 = enabled)',
       
   222       ),
       
   223       'required' => array(
       
   224         'type' => 'int',
       
   225         'unsigned' => TRUE,
       
   226         'not null' => TRUE,
       
   227         'default' => 0,
       
   228         'size' => 'tiny',
       
   229         'description' => 'Whether or not terms are required for nodes using this vocabulary. (0 = disabled, 1 = enabled)',
       
   230       ),
       
   231       'tags' => array(
       
   232         'type' => 'int',
       
   233         'unsigned' => TRUE,
       
   234         'not null' => TRUE,
       
   235         'default' => 0,
       
   236         'size' => 'tiny',
       
   237         'description' => 'Whether or not free tagging is enabled for the vocabulary. (0 = disabled, 1 = enabled)',
       
   238       ),
       
   239       'module' => array(
       
   240         'type' => 'varchar',
       
   241         'length' => 255,
       
   242         'not null' => TRUE,
       
   243         'default' => '',
       
   244         'description' => 'The module which created the vocabulary.',
       
   245       ),
       
   246       'weight' => array(
       
   247         'type' => 'int',
       
   248         'not null' => TRUE,
       
   249         'default' => 0,
       
   250         'size' => 'tiny',
       
   251         'description' => 'The weight of the vocabulary in relation to other vocabularies.',
       
   252       ),
       
   253     ),
       
   254     'primary key' => array('vid'),
       
   255     'indexes' => array(
       
   256       'list' => array('weight', 'name'),
       
   257     ),
       
   258   );
       
   259 
       
   260   $schema['vocabulary_node_types'] = array(
       
   261     'description' => 'Stores which node types vocabularies may be used with.',
       
   262     'fields' => array(
       
   263       'vid' => array(
       
   264         'type' => 'int',
       
   265         'unsigned' => TRUE,
       
   266         'not null' => TRUE,
       
   267         'default' => 0,
       
   268         'description' => 'Primary Key: the {vocabulary}.vid of the vocabulary.',
       
   269       ),
       
   270       'type' => array(
       
   271         'type' => 'varchar',
       
   272         'length' => 32,
       
   273         'not null' => TRUE,
       
   274         'default' => '',
       
   275         'description' => 'The {node}.type of the node type for which the vocabulary may be used.',
       
   276       ),
       
   277     ),
       
   278     'primary key' => array('type', 'vid'),
       
   279     'indexes' => array(
       
   280       'vid' => array('vid'),
       
   281     ),
       
   282   );
       
   283 
       
   284   return $schema;
       
   285 }
       
   286